gpt4 book ai didi

python - python逐行比较文件

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

按第一个索引遍历排序列表的最优雅方法是什么?输入:

Meni22   xxxx xxxx
Meni32_2 xxxx xxxx
Meni32_2 xxxx xxxx
Meni45_1 xxxx xxxx
Meni45_1 xxxx xxxx
Meni45 xxxx xxxx

是否逐行走槽:

list1 = []
list2 = []
for line in input:
if line[0] not in list1:
list.append(line)
else:
list2.append(line)

示例显然不会起作用。它添加 line[0] 的第一个匹配项并继续。我宁愿让它遍历列表,将它只找到一次的行添加到 list1 中,然后放到 list2 中。

脚本之后:

List1:

Meni22 xxxx xxxx
Meni45 xxxx xxxx

List2:

Meni45_1 xxxx xxxx
Meni45_1 xxxx xxxx
Meni32_2 xxxx xxxx
Meni32_2 xxxx xxxx

最佳答案

由于文件是排序的,所以可以使用groupby

from itertools import groupby
list1, list2 = res = [], []
with open('file1.txt', 'rb') as fin:
for k,g in groupby(fin, key=lambda x:x.partition(' ')[0]):
g = list(g)
res[len(g) > 1] += g

或者如果你喜欢这个更长的版本

from itertools import groupby
list1, list2 = [], []
with open('file1.txt', 'rb') as fin:
for k,g in groupby(fin, key=lambda x:x.partition(' ')[0]):
g = list(g)
if len(g) > 1:
list2 += g
else:
list1 += g

关于python - python逐行比较文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16540746/

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