如何用正确的顺序在Python中构造嵌套字典理解?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何用正确的顺序在Python中构造嵌套字典理解?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1379字,纯文字阅读大概需要2分钟。
内容图文
![如何用正确的顺序在Python中构造嵌套字典理解?](/upload/InfoBanner/zyjiaocheng/760/62e5d814672d49dbb1e04ab2a8b88177.jpg)
当我遇到问题时,我试图缩短this problem的代码.
基本上,我正在尝试嵌套词典理解&这次尝试没有成功.
这是我试过的.
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
我需要有关字典(或列表)理解的嵌套结构的帮助.一个例子可以帮助很多.
解决方法:
请注意,有一种更好的方法可以在没有词典理解的情况下做到这一点;见下文.我将首先解决您的方法的问题.
您需要在理解中使用嵌套顺序.按嵌套常规循环时的顺序列出循环.
line.split()表达式返回两个项目的序列,但这些项目中的每一个都不是键和值的元组;相反,只有一个元素被迭代.将分组包装在一个元组中,这样就可以得到一个(序列)的(键,值)项目,将两个结果分配给两个项目:
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"])
内容总结
以上是互联网集市为您收集整理的如何用正确的顺序在Python中构造嵌套字典理解?全部内容,希望文章能够帮你解决如何用正确的顺序在Python中构造嵌套字典理解?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。