如何以正确的顺序在Python中构造嵌套字典理解?

shad0w_wa1k3r

遇到问题时,我试图缩短此问题的代码

基本上,我正在尝试嵌套字典理解,但尝试失败。这是我尝试过的。

dict2 = {key:value for key, value in line.split(":")
                   for line in ["1:One", "2:Two", "4:Four"]}
print dict2

当我运行它时,它给了我

NameError: name 'line' is not defined

而且,当我反转这样的for陈述时

dict2 = {key:value for line in ["1:One", "2:Two", "4:Four"]
                   for key, value in line.split(":")}
print dict2

结果是

ValueError: need more than 1 value to unpack

我需要有关dictionary(或list)理解的嵌套结构的帮助一个例子会很有帮助。

马丁·彼得斯(Martijn Pieters)

请注意,有一种更好的方法来执行此操作而无需了解字典。见下文。我将首先用您的方法解决问题。

您需要在理解中使用嵌套顺序以嵌套常规循环时的顺序列出循环。

line.split()表达式返回两个项目的序列,但是每个项目都不是键和值的元组。相反,只有一个元素被迭代。将拆分包裹在一个元组中,这样就产生了一个“序列”(key, value)项,可以将两个结果分配给两个项:

dict2 = {key:value for line in ["1:One", "2:Two", "4:Four"]
                   for key, value in (line.split(":"),)}

这等效于:

dict2 = {}
for line in ["1:One", "2:Two", "4:Four"]:
    for key, value in (line.split(":"),):
        dict2[key] = value

只需要嵌套循环的地方,因为您不能这样做:

dict2 = {}
for line in ["1:One", "2:Two", "4:Four"]:
    key, value = line.split(":")
    dict2[key] = value

但是,在这种情况下,应该使用dict()构造函数来代替字典理解希望两个元素的序列,简化了整个操作:

dict2 = dict(line.split(":") for line in ["1:One", "2:Two", "4:Four"])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何以正确的顺序在Python中构造嵌套字典理解?

来自分类Dev

字典中的wxPython菜单:如何以正确的顺序显示菜单在字典中的显示顺序?

来自分类Dev

嵌套字典理解python

来自分类Dev

嵌套的Python字典理解

来自分类Dev

Python-如何以完全随机的顺序将两个列表合并到字典中

来自分类Dev

如何以随机顺序遍历Python字典的项?

来自分类Dev

如何以pythonic方式从嵌套字典中获取键

来自分类Dev

如何以确定的顺序打印禁忌字典?

来自分类Dev

带有值列表的Python中的嵌套字典理解

来自分类Dev

如何维护python中字典的顺序?

来自分类Dev

Python中的字典构造

来自分类Dev

python中的字典顺序

来自分类Dev

如何以正确的顺序生成字母?

来自分类Dev

如何以正确的顺序获取数组

来自分类Dev

Python中的字典理解

来自分类Dev

如何在python中制作嵌套字典?

来自分类Dev

如何从python的嵌套字典中获取价值?

来自分类Dev

如何在python中创建嵌套字典

来自分类Dev

如何遍历 Python 中的嵌套字典?

来自分类Dev

Python-FOR循环未在嵌套字典中写入正确的值

来自分类Dev

如何仅按字母顺序打印嵌套在列表中、字典中的内部字典的键?

来自分类Dev

python中嵌套列表理解和嵌套生成器表达式的顺序

来自分类Dev

如何以不同顺序将嵌套列表中的data.frame对象集分组?

来自分类Dev

如何以python中的参数为条件创建嵌套列表

来自分类Dev

在python中,“ if-else and for”如何在字典理解中工作

来自分类Dev

如何以正确的顺序将句子中的单词插入列表

来自分类Dev

在ES2015中,如何以正确的顺序重建标记的模板文字?

来自分类Dev

如何以正确的顺序获取pandas中的value_counts()的返回值

来自分类Dev

是否可以仅更改内部字典的内容而不更改python中嵌套字典中外部字典的顺序?

Related 相关文章

  1. 1

    如何以正确的顺序在Python中构造嵌套字典理解?

  2. 2

    字典中的wxPython菜单:如何以正确的顺序显示菜单在字典中的显示顺序?

  3. 3

    嵌套字典理解python

  4. 4

    嵌套的Python字典理解

  5. 5

    Python-如何以完全随机的顺序将两个列表合并到字典中

  6. 6

    如何以随机顺序遍历Python字典的项?

  7. 7

    如何以pythonic方式从嵌套字典中获取键

  8. 8

    如何以确定的顺序打印禁忌字典?

  9. 9

    带有值列表的Python中的嵌套字典理解

  10. 10

    如何维护python中字典的顺序?

  11. 11

    Python中的字典构造

  12. 12

    python中的字典顺序

  13. 13

    如何以正确的顺序生成字母?

  14. 14

    如何以正确的顺序获取数组

  15. 15

    Python中的字典理解

  16. 16

    如何在python中制作嵌套字典?

  17. 17

    如何从python的嵌套字典中获取价值?

  18. 18

    如何在python中创建嵌套字典

  19. 19

    如何遍历 Python 中的嵌套字典?

  20. 20

    Python-FOR循环未在嵌套字典中写入正确的值

  21. 21

    如何仅按字母顺序打印嵌套在列表中、字典中的内部字典的键?

  22. 22

    python中嵌套列表理解和嵌套生成器表达式的顺序

  23. 23

    如何以不同顺序将嵌套列表中的data.frame对象集分组?

  24. 24

    如何以python中的参数为条件创建嵌套列表

  25. 25

    在python中,“ if-else and for”如何在字典理解中工作

  26. 26

    如何以正确的顺序将句子中的单词插入列表

  27. 27

    在ES2015中,如何以正确的顺序重建标记的模板文字?

  28. 28

    如何以正确的顺序获取pandas中的value_counts()的返回值

  29. 29

    是否可以仅更改内部字典的内容而不更改python中嵌套字典中外部字典的顺序?

热门标签

归档