我有以下的字典:
我有以下的字典。
d1 = {'test': ['1', '2', '3'],
'酷'。['7', '1'] 。
'idk': ['3'/span>, '2'/span>, '7'/span>, '1'/span>],
'idc': ['8']。
'hm': ['1', '4', '5']} 。
我想實作的輸出是:
我想實作的輸出是:
{'test': ['1', '2', '3'] 。
'酷'。['7']。
'idk': ['']。
'idc': ['8']。
'hm': ['4','5']}。
這是我試過的代碼:
result = {}。
for key, value in d1.items():
if value not in result.values() 。
result[key] = value
print("result", str(result))
這并沒有給我帶來我所期望的輸出。我試圖保留第一個值,并洗掉此后出現的任何值。如果有任何幫助,我們將不勝感激。
uj5u.com熱心網友回復:
這應該能滿足你的需要:-
d1 = {'test'/span>: ['1', '2', '3'],
'酷'。['7', '1'] 。
'idk': ['3'/span>, '2'/span>, '7'/span>, '1'/span>],
'idc': ['8']。
'hm': ['1'/span>, '4'/span>, '5'/span>]}。
kv = []
d2 = {}
for k, v in d1.items()。
ta=[]
for n in v。
if not n in kv:
kv.append(n)
ta.append(n)
d2[k]=ta
print(d2)
uj5u.com熱心網友回復:
你可以創建一個set變數,它將包含到目前為止所有看到的值:
d1 = {
"test"/span>: ["1"/span>, "2"/span>, "3"/span>]。
"酷"。["7"/span>, "1"/span>]。
"idk"/span>: ["3"/span>, "2"/span>, "7"/span>, "1"/span>] 。
"idc"。["8"]。
"hm"/span>: ["1"/span>, "4"/span>, "5"/span>]。
}
out, seen = {}, set()
for k, v in d1.items()。
tmp = []
for vv in v。
if vv not in seen:
tmp.append(vv)
seen.add(vv)
out[k] = tmp or [""/span>]
print(out)
列印:
{
"test": ["1"/span>, "2"/span>, "3"/span>]。
"酷"。["7"]。
"idk": [""]。
"idc": ["8"]。
"hm": ["4"/span>, "5"/span>]。
}
沒有set的替代方法:
out = {}。
for k, v in d1.items():
for vv in v。
if not any(vv == vvv for l in out. values() for vvv in l)。)
out.setdefault(k, []).append(vv)
out[k] = out.get(k, [""/span>])
print(out)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/327357.html
標籤:
