對於您的要求(元組列表轉換成字典),你可以這樣做以下(不包括輸入的庫如集合,itertools等)
materialCheck=[('1111','U'),('1111','D'),('1111','U+'),('222','U')]
output_dict = {}
for item in materialCheck:
if item[0] not in output_dict:
output_dict[item[0]] = []
output_dict[item[0]].append(item[1])
這樣做。
如果您希望以您的方式完成此操作,則錯誤與行dct = dict((key, tuple(v for (k, v) in pairs))
一致。這應該爲你工作:
materialCheck = []
materialCheck.append(str(data['material']))
materialCheck.append(str(data['kind']))
dct = {}
for (key, pairs) in itertools.groupby(materialCheck, lambda pair: pair[0]):
dct[key] = tuple(v for (k, v) in pairs)
print dct
的ValueError異常是可能的,如果data['material']
或data['kind']
不是一個兩個值列表。所需的輸入將如下所示:
data = {'material' : [('1111', 'U'), ('222', 'U')], 'kind' : [('1111', 'D'), ('1111', 'U+')]}
'data'是怎麼樣的? – Marcin 2014-12-04 07:10:29
死亡雙人模樣是怎樣的? – 2014-12-04 07:12:44
materialCheck = [('1111','U'),('1111','D'),('1111','U +'),('222','U')]我試圖將列表更改爲{1111:('U','D','UP +'),222:('u')} ...它引發錯誤ValueError:解包的值太多 – Shesha 2014-12-04 07:15:15