使用itertools.groupby

数码

我有一个像这样的文件:

1     abc
1     def
2     ghi
3     jkl
3     mno
3     pqr

并希望从中生成这样的文件:

abc;def
jkl;mno
jkl;pqr
mno;pqr

我有以下代码:

with open('input.txt') as f1:
with open("output.csv", "wb") as f2:
    cw = csv.writer(f2, delimiter=";")
    for l in itertools.groupby((l.split() for l in f1), lambda x: x[0]):
        grouped = set(x[1] for x in l[1])  # set avoids duplicate rows
        for c in itertools.combinations(grouped, 2):
            cw.writerow(c)

但是此代码不会向输出文件写入任何内容。我究竟做错了什么?

特里·扬·里迪(Terry Jan Reedy)

使用csv.writer;在两个字符串之间插入是过分的杀伤力。将其删除后,您的代码即可正常工作。同样,出于开发和发布的目的,请使用可迭代的行而不是外部文件作为源,而print不是write用于输出。

import itertools

f1 = '''\
1     abc
1     def
2     ghi
3     jkl
3     mno
3     pqr
'''.splitlines()

for l in itertools.groupby((l.split() for l in f1), lambda x: x[0]):
    grouped = set(x[1] for x in l[1])  # set avoids duplicate rows
    for c in itertools.combinations(grouped, 2):
        print('%s;%s' % c)

印刷

abc;def
pqr;mno
pqr;jkl
mno;jkl

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用itertools.groupby格式化字典列表?

来自分类Dev

Python的itertools.groupby()文档中使用的keyfunc是什么?

来自分类Dev

如何通过true / false lambda函数使用itertools.groupby

来自分类Dev

使用 itertools groupby 从分类列表中获取索引值

来自分类Dev

python groupby itertools列出方法

来自分类Dev

Itertools Groupby提供了意外结果

来自分类Dev

python itertools groupby 返回空

来自分类Dev

在itertools.groupby的结果上使用zip意外给出空列表

来自分类Dev

如何使用itertools.groupby将CSV数据转换为字典

来自分类Dev

使用`itertools.groupby()`获取以`A`开头的字符串运行列表?

来自分类Dev

如何在使用 itertools.groupby 删除重复项时包含每个字符的计数

来自分类Dev

像Python的itertools.groupby一样的Groupby

来自分类Dev

像Python的itertools.groupby一样的Groupby

来自分类Dev

itertools.groupby的意外行为

来自分类Dev

带有聚合的Python itertools groupby

来自分类Dev

有什么方法可以使用itertools groupby删除列表中相邻的重复项,但保留原始索引吗?

来自分类Dev

我可以使用 itertools.groupby 返回第一行以特定字符开头的行组吗?

来自分类Dev

Python Itertools-组合groupby和配方工具的分组器

来自分类Dev

itertools.tee不复制groupby迭代器

来自分类Dev

Laravel使用GroupBy

来自分类Dev

Laravel使用GroupBy

来自分类Dev

使用groupby进行绘图

来自分类Dev

如何使用lodash _groupBy

来自分类Dev

使用groupby的Python循环

来自分类Dev

使用GroupBy的Linq查询

来自分类Dev

在LINQ中使用GroupBy

来自分类Dev

如何使用 groupby/Lambda

来自分类Dev

使用 GroupBy 的条件格式

来自分类Dev

在稀疏矩阵上使用groupby

Related 相关文章

热门标签

归档