gpt4 book ai didi

python - 对于共享相同标识符值的行重复 for 循环代码

转载 作者:太空宇宙 更新时间:2023-11-03 19:20:53 25 4
gpt4 key购买 nike

我有一个由以下行组成的文本文件:

12,538123,724026,8.01  
12,538123,724026,8.5
12,538123,724026,8.91
34,538123,724026,8.01
34,538123,724026,8.5
34,538123,724026,8.91

我有一个脚本,它可以循环遍历数据,从每行中获取一个元素 [-1] 并将其累积到一个新列表中。

我不知道如何对共享相同标识符的多组行(即第 1 行和第 2 行中的 12 行)执行此操作。

我尝试了一个嵌套的 while 循环,但我的问题是我的 while 条件是标识符值本身(即 12),所以当我读入具有不同 id 的新行(例如 34)时,这会更改条件while 循环到新的 id 值。这(毫不奇怪)导致我在一个长列表中累积了每个 [-1] 值的列表(我的实际列表有 >200,000 行)。我也在 For 循环中尝试了 If 语句,效果相同。

我的问题是使用 id 作为条件,但我想不出其他方法来做到这一点。

有人有什么想法吗?
可以循环完成吗?
如果我能总结一下线集,也可能做到这一点(但我不知道这是否可以做到)。

最佳答案

未经测试:

from itertools import groupby
from operator import itemgetter


d = {}
with open("some_file_name", "r") as f:
lines = (line.split(",") for line in f)
for k, g in groupby(lines, key=itemgetter(0)):
d[k] = [line[-1] for line in g]

根据需要添加float等。结果在 d 中。

关于python - 对于共享相同标识符值的行重复 for 循环代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9796457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com