使用唯一ID对有效负载进行排序

我有以下代码:

values = defaultdict(set)
for block in scanner:
    payload = block.packet_payload_info[2]
    id, type = getId(payload)
    values[id].add(value)
    out.write(str(id) + ";" + str(typee) + ";".join(map(str, [id] + list(values[id].round(2)))) + "\n")

我得到以下输出作为示例:

9; 2; 17.7999992370605479; 17.299999237060547; 17.799999237060547 10; 2; 22.39999961853027310; 22.399999618530273 2; 2; 39.09999847412109411; 20.399999618530273

现在发生了,有效负载再次读取值并再次打印相同的id,并一次又一次地打印值。

9;2;17.7999992370605479;17.299999237060547;17.799999237060547
10;2;22.39999961853027310;22.399999618530273 
2;2;39.09999847412109411;20.399999618530273
[...]
9;2;17.7999992370605479;17.299999237060547;17.799999237060547
10;2;22.39999961853027310;22.399999618530273 
2;2;39.09999847412109411;20.399999618530273

现在,我需要一个代码,其中只有唯一的ID和之后的值,而无需重复ID。有人可以帮我如何在python中做到这一点吗?

评论