检测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集。