簡體   English   中英

如何使用 python 中的兩個列表(鍵有重復數據)創建字典?

[英]How to create a dictionary using two lists (keys have repeated data) in python?

我正面臨問題。 我有兩個列表,其中一個列表包含鍵,例如 ['a','a','a','b','b','b','b'] 但列表位於 ['a',' b','a','b','a','b'] 這種形式通過使用 sorted() 轉換為上面的列表,另一個列表包含值如 ['1','2','3',' 4','5','6']。 我想用這兩個列表制作字典,我該怎么做? 我嘗試過 Zip 方法,盡管它只返回最后一個值

我的代碼:

input:lst =  ['a','b','a','b','a','b']
lst2 = sorted(lst)
score =[1,2,3,4,5,6]
dictionary = dict(zip(lst2, score))
Output:
{'a':3,'b':6}

我想要的是

    input:
    lst =  ['a','b','a','b','a','b']
    lst2 = sorted(lst)
    score =[1,2,3,4,5,6]
    excepted output :
{'a':1,'a':2,'a':3,'b':4,'b':5,'b':6}

在 Python 字典中,您的鍵必須是唯一的 - 因此不能像其他人已經提到的那樣重復。

相信Python中的Collections模塊可以幫助你對數據進行分組。

lst = ['a','b','a','b','a','b']
lst.sort() # in-place sort
score = [1,2,3,4,5,6]

from collections import defaultdict
output_list = defaultdict(list)
for A, B in zip(lst, score):
    output_list[A].append(B)

output_list 產生:

defaultdict(list, {'a': [1, 2, 3], 'b': [4, 5, 6]})

暫無
暫無

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

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