我想通過使用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