该问题的一个示例如下所示:[{'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
提交
取消