我有兩個清單:
['Slovenia', 'Turkey', 'Ukraine', 'Ukraine', 'Turkey']
['BMW Slovenia', 'Tesla Turkey', 'Opel Ukraine', 'Ford Ukraine', 'Fiat Turkey']
而且我需要將它們變成帶有串列的字典,其中一個國家可以有多個專案。
我希望我的字典看起來像這樣:
{
'Slovenia': ['BMW Slovenia'],
'Turkey': ['Tesla Turkey','Fiat Turkey'],
'Ukraine':['Opel Ukraine','Ford Ukraine']
}
謝謝您的回答!
uj5u.com熱心網友回復:
您可以使用字典理解。請注意,即使串列的長度不同,這也有效:
l1 = ['Slovenia', 'Turkey', 'Ukraine', 'Ukraine', 'Turkey']
l2 = ['BMW Slovenia', 'Tesla Turkey', 'Opel Ukraine', 'Ford Ukraine', 'Fiat Turkey']
out = {k: [c for c in l2 if k in c] for k in set(l1)}
對于您的特定情況,您還可以使用zip(因為串列長度匹配)和dict.setdefault:
out = {}
for k,v in zip(l1,l2):
out.setdefault(k, []).append(v)
輸出:
{'Slovenia': ['BMW Slovenia'],
'Turkey': ['Tesla Turkey', 'Fiat Turkey'],
'Ukraine': ['Opel Ukraine', 'Ford Ukraine']}
uj5u.com熱心網友回復:
用于zip將兩個串列配對,并使用 acollections.defaultdict來存盤結果
from collections import defaultdict
x = ['Slovenia', 'Turkey', 'Ukraine', 'Ukraine', 'Turkey']
y = ['BMW Slovenia', 'Tesla Turkey', 'Opel Ukraine', 'Ford Ukraine', 'Fiat Turkey']
result = defaultdict(list)
for key, val in zip(x, y):
result[key].append(val)
print(result)
# {'Slovenia': ['BMW Slovenia'],
# 'Turkey': ['Tesla Turkey', 'Fiat Turkey'],
# 'Ukraine': ['Opel Ukraine', 'Ford Ukraine']}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/375596.html
上一篇:Python-如何找到字串A在字串B中出現的位置,但允許一定數量的錯誤
下一篇:如何為JSON檔案設定條件?
