Не перебрасываются элементы из списка в словарь. Почему?
Объясните ошибку, пожалуйста. Я хочу, чтобы элементы из списка переходили в словарь и их ключами были бы их порядковые номера, но при этом, если элемент из списка повторяется, то мы его просто пропускаем. Как это реализовывается. Я сделал так
def enumerate(data, counter):
tpl = {}
for element in data:
if element not in tpl:
tpl[counter] = element
counter += 1
else:
pass
return tpl
data1 = [8, 7, 5, 7, 4, 7, 6, 3]
for i in enumerate(data1, 1):
print(i)
но ничего не вышло.
Ответы (2 шт):
Видимо потому что у вас задан диапазон старт и стопа в цикле, попробуйте оставить лишь data1, а еще в питоне уже есть метод enumerate если я не ошибаюсь.
Вы ведь возвращаете словарь, а при его переборе в for будут возвращаться ключ, а чтобы получить ключ-значение, используйте метод items:
...
data1 = [8, 7, 5, 7, 4, 7, 6, 3]
for i in enumerate(data1, 1).items():
print(i)
# (1, 8)
# (2, 7)
# (3, 5)
# (4, 7)
# (5, 7)
# (6, 6)
# Или так:
for i, x in enumerate(data1, 1).items():
print(i, x)
Или в функции возвращайте результат как:
return tpl.items()
PS.
enumerate это встроенная функция, лучше не называйте свою функцию также, чтобы не получать сюрпризы в коде, где используется встроенный enumerate