Как перечислить элементы в словаре с помощью enumerate () в python - PullRequest
1 голос
/ 04 мая 2020

Как следует из названия, я хотел перечислить ключ и его значения (без скобок) в python. Я попробовал следующий код:

example_dict = {'left':'<','right':'>','up':'^','down':'v',}
[print(i,j,a) for (i,j,a) in enumerate(example_dict.items())]

Но это не работает. Я хочу, чтобы вывод был таким

0 left <
1 right >
2 up ^
3 down v

Заранее спасибо

Ответы [ 2 ]

8 голосов
/ 04 мая 2020

В этом случае перечисление возвращает (index, (key, value)), поэтому вам просто нужно изменить распаковку на for i, (j, a), хотя лично я бы использовал k, v вместо j, a в примере.

Кстати не использовать понимание для побочных эффектов; просто используйте for-l oop.

for i, (k, v) in enumerate(example_dict.items()):
    print(i, k, v)
1 голос
/ 04 мая 2020

Как и в комментарии Александра, код будет работать так:

for (i, (name, sym)) in enumerate(example_dict.items()):
    print(i, name, sym)

Комментарий о стиле: в то время как понимание действительно аккуратно при вычислении значений, использование его для печати всего oop будет работать, но затуманивает смысл вашего кода, делая его менее читабельным.

...