該問題的一個示例如下所示:[{'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()}

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