4 回答

TA貢獻1828條經(jīng)驗 獲得超4個贊
一個帶有defaultdict
should do 的簡單循環(huán):
from collections import defaultdict
d = defaultdict(list)
for k,l in abc:
? ? d[k].append(l)
print(d)
defaultdict(list,
? ? ? ? ? ? {'1': [('1A', '1B', '1C'), ('1D', '1E', '1F')],
? ? ? ? ? ? ?'2': [('2A', '2B', '2C'), ('2D', '2E', '2F')],
? ? ? ? ? ? ?'3': [('3A', '3B', '3C')]})
或者如果你想使用 python 的,如果鍵不存在,dict你可以設(shè)置一個空列表作為默認值,然后:setdefaultappend
d = dict()
for k,l in abc:
? ? d.setdefault(k, []).append(l)

TA貢獻1862條經(jīng)驗 獲得超7個贊
迭代循環(huán)并將鍵、值對添加到主字典中。
可能有一種更優(yōu)雅的方法來做到這一點,但我認為簡單的 for 循環(huán)更明確。
abc=[["1",("1A",'1B','1C')], ['1',('1D','1E','1F')], ['2',('2A','2B','2C')], ['2',('2D','2E','2F')], ["3",('3A','3B','3C')]]
main = {}
for item in abc:
if item[0] not in main:
main[item[0]] = [item[1]]
else:
main[item[0]].append(item[1])

TA貢獻1844條經(jīng)驗 獲得超8個贊
嘗試這個:
main = {}
for x in abc:
if x[0] not in main:
main[x[0]] = []
main[x[0]].append(x[1])

TA貢獻1859條經(jīng)驗 獲得超6個贊
一班輪
main = {x[0]: [y[1] for y in abc if y[0] == x[0]] for x in abc}
添加回答
舉報