該問(wèn)題的一個(gè)示例如下所示:[{'00016F745862898F': ['2963419753', '5737807753', '2963419753', '5737807753', '', ''], '00157F1570C74E09': ['2362603155', '7053812209', '', '', '', '7053812209']}我希望將相同的數(shù)字合并在一起。我正在嘗試從此字典創(chuàng)建另一本字典,但每當(dāng)我嘗試設(shè)置或聯(lián)合時(shí),我仍然得到相同的結(jié)果。我使用 set 的原因是因?yàn)檫@些值來(lái)自將列表合并在一起。我正在嘗試將其合并到我的代碼中,''并刪除它。如果令人困惑,我可以顯示整個(gè)代碼。我已經(jīng)嘗試過(guò)的代碼:for k, v in full.items(): tmp = [] for i in v: if i != '': tmp.append(i) list(set().union(tmp)) out[k] = tmp print(tmp)和for k, v in full.items(): tmp = [] for i in v: if i != '': tmp.append(i) out[k] = set(tmp) print(tmp)這些仍然給我與上面相同的輸出。所需的輸出如下,其中相同的元素將合并:[{'00016F745862898F': ['2963419753', '5737807753',], '00157F1570C74E09': ['2362603155', '7053812209',]}
2 回答

蕭十郎
TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
就這么簡(jiǎn)單?
old = {'00016F745862898F': ['2963419753', '5737807753', '2963419753', '5737807753', '', ''],'00157F1570C74E09': ['2362603155', '7053812209', '', '', '', '7053812209']}
new = {key: list(set(val)-{''}) for key, val in old.items()}

眼眸繁星
TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊
在你的第一個(gè)例子中
list(set().union(tmp))
這將創(chuàng)建一個(gè)新集合和一個(gè)新列表,同時(shí)保持tmp
完整。您必須保存這個(gè)經(jīng)過(guò)重復(fù)數(shù)據(jù)刪除的新列表并在以后使用它。
在你的第二個(gè)例子中
out[k] = set(tmp) print(tmp)
您保存了新的一組,但仍在打印舊的一組。您應(yīng)該已經(jīng)使用過(guò)print(out[k])
或類似的。
添加回答
舉報(bào)
0/150
提交
取消