为什么我的列表中的重复项甚至没有与集合合并



问题的示例如下:

[{'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',]}

就这么简单?

old = {'00016F745862898F': ['2963419753', '5737807753', '2963419753', '5737807753', '', ''],'00157F1570C74E09': ['2362603155', '7053812209', '', '', '', '7053812209']}
new = {key: list(set(val)-{''}) for key, val in old.items()}

在您的第一个示例中

list(set().union(tmp))

这将创建一个新集合和一个新列表,同时保持tmp完整。您必须保存此已消除重复的新列表,然后再使用它。

在你的第二个例子

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

您保存了新集合,但仍在打印旧集合。您应该使用print(out[k])或类似产品。

最新更新