键值列表列表到列表字典的列表

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


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


炎炎设计
浏览 129回答 4
4回答

明月笑刀无情

一个带有defaultdictshould do 的简单循环:from collections import defaultdictd = 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你可以设置一个空列表作为默认值,然后:setdefaultappendd = dict()for k,l in abc:    d.setdefault(k, []).append(l)

牧羊人nacy

迭代循环并将键、值对添加到主字典中。可能有一种更优雅的方法来做到这一点,但我认为简单的 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])

慕丝7291255

一班轮main = {x[0]: [y[1] for y in abc if y[0] == x[0]] for x in abc}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python