想將串列轉換為字典,但這里我有重復的鍵,不應該在 output_dict 中考慮。
以下是輸入串列和預期字典。
input_list = [[1,'a'],[1,'b'],[2,'c'],[2,'d']]
output_dict = {
1:['a','b'],
2:['c','d']
}
撰寫了以下程式,它給出了預期的結果,但不知何故覺得這不是python中做事的標準方式。還有其他寫法嗎?
from pprint import pprint
output_dict = {}
list2 = []
input_list = [[1,'a'],[1,'b'],[2,'c'],[2,'d']]
keys = []
for i in input_list:
keys.append(i[0])
for key in keys:
list2 = []
for i in input_list:
if key in i:
list2.append(i[1])
output_dict[key] = list2
print("\n\n")
pprint(output_dict)
uj5u.com熱心網友回復:
您可以使用collections.defaultdict或使用dict.setdefault更短的代碼:
input_list = [[1, "a"], [1, "b"], [2, "c"], [2, "d"]]
out = {}
for k, v in input_list:
out.setdefault(k, []).append(v)
print(out)
印刷:
{1: ['a', 'b'], 2: ['c', 'd']}
uj5u.com熱心網友回復:
我建議使用 set() 從串列中洗掉重復項,然后將其附加到字典中!
輸入串列 = 串列(設定(輸入串列))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/473221.html
下一篇:請幫助更改嵌套在字典中的鍵
