簡體   English   中英

Python中的字典/詞組

[英]Dictionary/Tuples in Python

我的目的是轉換此對列表:

[(9, 7), (78, 24), (17, 74), (53, 81), (40, 43), (79, 82), (84, 46), (68, 53),(92, 95), (60, 38), (78, 62), (72, 57)]

對於此字典:

{'78': [24,62], '53': [81], '92': [95], '68': [53], '17': [74], '9': [7], '40': [43], '84': [46], '60': [38], '79': [82], '72': [57]}

這是我的代碼:

def convert list_tuples_to_dictionary(lst):
    global count
    count={}
    for i in range(len(lst)):
        x=str(lst[i][0])
        if (x in count):
            count[x]=[lst[i][1]]+count[x]
        else:    
        count[x]=[lst[i][1]]

我似乎在某處出現語法錯誤。 我猜我不能將列表用作字典中的鍵。 是這樣嗎

如果是,您可以提供替代方法嗎?

 from collections import defaultdict
 res = defaultdict(list)
 for k, v in lst: res[k].append(v)

default_dict是一種字典實現,其工作方式是,如果還不存在鍵,則會自動創建它(使用通常的dict您將得到keyError )。 res您將找到按鍵分組的值,這基本上是一個groupByKey操作。

我認為這會起作用:

data = [(9, 7), (78, 24), (17, 74), (53, 81), (40, 43), (79, 82), (84, 46), (68, 53),(92, 95), (60, 38), (78, 62), (72, 57)]

count = {}
for i in data:
    if not i[0] in count:
        count[i[0]] = []
    count[i[0]].append(i[1])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM