问题的示例如下:
[{'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])
或类似产品。