【发布时间】:2012-08-19 03:41:44
【问题描述】:
我正在尝试编写一个函数,将'A=5, b=7' 形式的字符串转换为字典{'A': 5, 'b': 7}。以下代码 sn-ps 是在 for 主循环中发生的 - 它们将字符串的单个部分转换为单个 dict 元素。
这很好:
s = 'A=5'
name, value = s.split('=')
d = {name: int(value)}
这不是:
s = 'A=5'
d = {name: int(value) for name, value in s.split('=')}
ValueError: need more than 1 value to unpack
为什么我不能在字典理解中解包元组?如果我得到这个工作,那么我可以轻松地将整个函数变成一个紧凑的字典理解。
【问题讨论】:
-
你的问题是“为什么我不能解压元组......”所以我会避免添加到实际上告诉你如何解决这个问题的不断增长的答案,但是一个简单的方法是使用带有可迭代参数的
dict构造函数。
标签: python dictionary iterable-unpacking dictionary-comprehension