Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 键值列表列表到列表字典_Python_List_Dictionary - Fatal编程技术网

Python 键值列表列表到列表字典

Python 键值列表列表到列表字典,python,list,dictionary,Python,List,Dictionary,我已经试过很多次了,但都找不到答案! 所以请帮我找到任何逻辑来得到这个答案 main={} abc=[["1",("1A",'1B','1C')], ['1',('1D','1E','1F')], ['2',('2A','2B','2C')], ['2',('2D','2E','2F')], ["3",('3A','3B','3C')]] # I WANT main DICTIONARY AS main={'1':[("1A

我已经试过很多次了,但都找不到答案! 所以请帮我找到任何逻辑来得到这个答案

main={}
abc=[["1",("1A",'1B','1C')], ['1',('1D','1E','1F')], ['2',('2A','2B','2C')], ['2',('2D','2E','2F')], ["3",('3A','3B','3C')]]

# I WANT main DICTIONARY AS
main={'1':[("1A",'1B','1C'),('1D','1E','1F')], '2':[('2A','2B','2C'),('2D','2E','2F')], '3':[('3A','3B','3C')]}
一班轮

main = {x[0]: [y[1] for y in abc if y[0] == x[0]] for x in abc}
一个简单的循环和一个

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
,可以使用
setdefault
将空列表设置为默认值(如果键不存在),然后使用
append

d = dict()
for k,l in abc:
    d.setdefault(k, []).append(l)

迭代循环并将键、值对添加到主字典中

也许有一种更优雅的方法可以做到这一点,但我认为简单的for循环更显式

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])

试试这个:

main = {}
for x in abc:
    if x[0] not in main:
        main[x[0]] = []
    main[x[0]].append(x[1])