Skip to main content
 首页 » 编程设计

python之在 Python 中打印带有约束的行

2025年05月04日12hnrainll

假设我们有以下包含 a 列和 b 列的文本文件:

D000001 T109 
D000001 T195 
D000002 T115 
D000002 T131 
D000003 T073 
D000004 T170 

我想知道如何产生以下结构:

D000001 T109 T195 
D000002 T115 T131 
D000003 T073 
D000004 T170 

下面粘贴的是 Python 的初始框架。

from __future__ import print_function 
 
with open('descr2semtype_short.txt') as f: 
    for line in f: 
        line = line.rstrip() 
        a, b = line.split() 
        print(a + ' ' + b) 

请您参考如下方法:

你可以使用itertools.groupby:

import itertools, operator 
with open('descr2semtype_short.txt') as f: 
    for key, items in itertools.groupby( 
        (line.rstrip().split(None,1) for line in f), 
        operator.itemgetter(0)): 
        print(key, ' '.join(item[1] for item in items)) 

它给出了所需的输出:

D000001 T109 T195 
D000002 T115 T131 
D000003 T073 
D000004 T170