【问题标题】:Python dictionary with tuples as key to new dictionary with keys as first element of tuple以元组作为键的 Python 字典以键作为元组的第一个元素的新字典
【发布时间】:2021-07-07 04:36:05
【问题描述】:

我想将字典 d1 转换为字典 d2:

d1 = {('a','b'):1, ('a','c'):2, ('a','d'):3, ('b','c'):2, ('b','d'):1, ('c','f'):2, ('f','c'):2 }

d2 = {'a': [('b',1),('c',2) ,('d',3)], 'b':[('c',2),('d',1)], 'c':[('f',2)], 'f':[('c',2)]}

谁能告诉我怎么做?

【问题讨论】:

    标签: list dictionary tuples


    【解决方案1】:

    只需使用 for 循环并遍历字典,然后以您的元组第一个元素为键创建一个新字典

    base = {('a','b'):1, ('a','c'):2, ('a','d'):3, ('b','c'):2, ('b','d'):1, ('c','f'):2, ('f','c'):2 }
    newDict = {}
    for key in base:
        #Key is the tuple
        if not key[0] in newDict.keys():
            newDict[key[0]] = []
        newDict[key[0]].insert(0, (key[1], base[key]))
    
    print(newDict)
    

    如果你真的不关心新字典值中列表的顺序,你应该追加而不是在 0 索引上插入,因为在 0 索引上插入比追加慢。

    【讨论】:

    • 这太酷了。非常感谢艾哈迈德。
    猜你喜欢
    • 2016-09-24
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 2017-07-05
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    相关资源
    最近更新 更多