【发布时间】:2013-10-07 22:33:10
【问题描述】:
我在 python 中玩一些循环。我对使用“for”循环非常熟悉:
for x in y:
do something
您还可以使用循环创建一个简单的列表:
i = []
for x in y:
i.append(x)
然后我最近在 Stack 上发现了一种非常有效的循环类型,用于构建一个列表(这种类型的循环有名称吗?我真的很想知道,以便更好地搜索它):
[x.name for x in y]
好的,话虽如此,我想更进一步地使用最后一种循环,我尝试使用相同类型的逻辑构建一个 python 字典:
{x[row.SITE_NAME] = row.LOOKUP_TABLE for row in cursor}
而不是使用:
x = {}
for row in cursor:
x[row.SITE_NAME] = row.LOOKUP_TABLE
我在等号上收到一条错误消息,告诉我这是一个无效的语法。我相信在这种情况下,它基本上告诉我等号是条件子句 (==),而不是变量的声明。
我的第二个问题是,我可以使用这种类型的循环构建一个 python 字典还是我离基地很远?如果是这样,我将如何构建它?
【问题讨论】:
-
你要找的名字是
list-comprehension -
您遇到语法错误,因为您使用方括号打开它并使用大括号将其关闭,并且您应该使用
:而不是=:{x[row.SITE_NAME] : row.LOOKUP_TABLE for row in cursor} -
我已经制作了a video that covers list comprehensions,它是各种表亲(set 和 dict 理解,以及生成器表达式),因为它在 SO 上出现了很多。将其描述为“循环类型”可能有点低估了它。
-
理解力很好....继续努力
-
谢谢大家!你们都很快回答了我的问题,我正是我想要的!此外,我更新了帖子的标题以供将来搜索。
标签: python for-loop list-comprehension dictionary-comprehension