【发布时间】:2017-11-21 04:09:36
【问题描述】:
我看到的所有问题都与我想做的完全相反:
假设我有一个清单:
lst = ['a','b','c']
我正在寻找一个字典,其中键是元素编号(从 1 而不是 0 开始),列表元素是值。像这样:
{1:'a', 2:'b', 3:'c'}
但是对于一个很长的列表。我已经阅读了一些关于 enumerate() 的内容,但我所看到的所有内容都使用列表元素作为键。
我发现了这个:
dict = {tuple(key): idx for idx, key in enumerate(lst)}
但这会产生:
{'a':1, 'b':2, 'c':3}
...这与我想要的相反。而且,还有一种奇怪的符号,让 Python 新手感到困惑。
非常感谢您的建议!谢谢!
【问题讨论】:
-
“奇怪的符号”被称为字典理解。理解非常方便,如果您会看到很多。这是一个不错的开始阅读的地方:smallsurething.com/list-dict-and-set-comprehensions-by-example
-
@PatrickHaugh 那么字典理解是做某些事情所必需的,还是更简洁?比如,这些东西可以像普通的 for 循环一样写吗?如果这个问题有意义。
-
@hexandheels 不,您始终可以将理解展开到
for循环中。这是为了简洁明了。这是一个涉及它们背后的基本原理的文档,并包含更多示例:python.org/dev/peps/pep-0274/#rationale
标签: python python-3.x list dictionary