我想通过使用dict
函数将列表转换为字典。字典功能的一些问题
inpu = input.split(",")
dic = dict(inpu)
上面的代码是试图得到一个字符串和split
它','
事后我使用dict
功能的列表转换为一个字典。
不过,我得到这个错误:
ValueError: dictionary update sequence element #0 has length 6; 2 is required
有人能帮忙吗?
我想通过使用dict
函数将列表转换为字典。字典功能的一些问题
inpu = input.split(",")
dic = dict(inpu)
上面的代码是试图得到一个字符串和split
它','
事后我使用dict
功能的列表转换为一个字典。
不过,我得到这个错误:
ValueError: dictionary update sequence element #0 has length 6; 2 is required
有人能帮忙吗?
dict
需要可迭代的2元素容器(如元组列表)。你不能只传递一个项目列表,它不知道什么是关键,什么是价值。
您正在试图做到这一点:
>>> range(10)
<<< [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> dict(range(10))
---------------------------------------------------------------------------
TypeError: cannot convert dictionary update sequence element #0 to a sequence
dict
预计名单如下:
>>> zip(lowercase[:5], range(5))
<<<
[('a', 0),
('b', 1),
('c', 2),
('d', 3),
('e', 4)]
元组的第一个元素成为关键,第二个变成值。
>>> dict(zip(lowercase[:5], range(5)))
<<<
{'a': 0,
'b': 1,
'c': 2,
'd': 3,
'e': 4}
字典是一个键 - 值对这就是为什么它说,需要长度为2的列表,以匹配键的值。你将输入分割成一个平坦的列表,这就是为什么Python在这种情况下抱怨的原因 - 它不知道要指定什么作为关键字以及指定为值。
如Python Data structures文档中所列。 dict()构造函数直接从存储为元组的键值对列表直接构建字典。
所以inpu阵列必须是形式在每个位置(“键”,“值”)的,例如
>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
{'sape': 4139, 'jack': 4098, 'guido': 4127}
您的输入数组的大小比2可能更大
给我们一个您输入的例子,并解释您期望发生的事情。 – NPE 2011-05-08 18:35:53
您可能想使用'set'而不是'dict'。 – 2011-05-08 18:48:16