在Python循环中构建字典-列表和字典理解

发布于 2021-01-29 15:06:52

我在玩一些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字典吗?如果是这样,我将如何组织它?

关注者
0
被浏览
97
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    简短格式如下(称为 dict理解 ,类似于 列表理解集合理解 等):

    x = { row.SITE_NAME : row.LOOKUP_TABLE for row in cursor }
    

    因此,通常给定一些_container带有某种元素的元素和一个_value为给定元素返回要添加到字典中此键的值的函数:

    { _key : _value(_key) for _key in _container }
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看