检测python中的重复元素
我从服务器连续获取数据,并可通过以下代码行接收数据:检测python中的重复元素,python,arrays,python-3.x,list,Python,Arrays,Python 3.x,List,我从服务器连续获取数据,并可通过以下代码行接收数据: id, type, value = getId(payload) 之后,我想通过以下方式将其写入文件: out.write(str(id) + ";" + str(type) + ";" + str(value) + "\n") 现在的情况是,同一个id可以出现多次,但值将是不同的。因此,我希望将out.write扩展为以下方式,即在右侧添加不同的值,但仍然引用相同的id: out.write(str(id) + ";" + str(ty
id, type, value = getId(payload)
之后,我想通过以下方式将其写入文件:
out.write(str(id) + ";" + str(type) + ";" + str(value) + "\n")
现在的情况是,同一个id可以出现多次,但值将是不同的。因此,我希望将out.write扩展为以下方式,即在右侧添加不同的值,但仍然引用相同的id:
out.write(str(id) + ";" + str(type) + ";" + str(value) + ";" + str(value1) + ";" + str(value2) + "\n")
有人知道如何在python中实现这一点吗?您想保留一个字典,其中字典中的键是您的
id
,值是集
,您可以添加所有值
from collections import defaultdict
results = defaultdict(set)
id, type, value = getId(payload)
results[id].add(value)
然后,此词典将保留每个id
的所有值
应该注意的是,使用集合将删除重复项的计数,因此如果要保留每个值,包括重复项,请使用
列表,而不是使用已添加为注释的提示,您可以创建类似的内容:
从集合导入defaultdict
值=默认dict(设置)
类型=dict()
对于输入_流中的有效负载:
id、类型、值=获取(有效负载)
值[id]。添加(值)
类型[id]=类型
对于type.keys()中的id:
out.write(“;”).join(映射(str[id,types[id]]+list(values[id]))+“\n”)
如果值更像是一个时间序列(顺序很重要),那么将set
替换为list
制作一个dict,其中id是键,value是另一个dict,type和value字段,value应该是数组?我会使用一个,将id
映射到唯一的value
s集。