亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我的列表中的重復項即使使用 set 也不會合并?

為什么我的列表中的重復項即使使用 set 也不會合并?

楊魅力 2023-12-12 10:14:35
該問題的一個示例如下所示:[{'00016F745862898F': ['2963419753', '5737807753', '2963419753', '5737807753', '', ''],  '00157F1570C74E09': ['2362603155', '7053812209', '', '', '', '7053812209']}我希望將相同的數字合并在一起。我正在嘗試從此字典創建另一本字典,但每當我嘗試設置或聯合時,我仍然得到相同的結果。我使用 set 的原因是因為這些值來自將列表合并在一起。我正在嘗試將其合并到我的代碼中,''并刪除它。如果令人困惑,我可以顯示整個代碼。我已經嘗試過的代碼: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貢獻1815條經驗 獲得超13個贊

就這么簡單?


old = {'00016F745862898F': ['2963419753', '5737807753', '2963419753', '5737807753', '', ''],'00157F1570C74E09': ['2362603155', '7053812209', '', '', '', '7053812209']}


new = {key: list(set(val)-{''}) for key, val in old.items()}


查看完整回答
反對 回復 2023-12-12
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

在你的第一個例子中

list(set().union(tmp))

這將創建一個新集合和一個新列表,同時保持tmp完整。您必須保存這個經過重復數據刪除的新列表并在以后使用它。

在你的第二個例子中

out[k] = set(tmp)
print(tmp)

您保存了新的一組,但仍在打印舊的一組。您應該已經使用過print(out[k])或類似的。


查看完整回答
反對 回復 2023-12-12
  • 2 回答
  • 0 關注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號