from collections import defaultdict #defaultdict will save a line or two of code
d = defaultdict(list) # goal is for d to look like {'EEE':['rs001', 'rs008', ...
for line in file('data.txt', 'r'):
v, k = line.strip().split()
d[k].append(v)
for k, v in d.iteritems(): # print d as the strings you want
print ' '.join(v+[k])
#!/usr/bin/env python
from __future__ import with_statement
from itertools import groupby
with open('file','r') as f:
# We define "it" to be an iterator, for each line
# it yields pairs like ('rs001','EEE')
it=(line.strip().split() for line in f)
# groupby does the heave work.
# lambda p: p[1] is the keyfunction. It groups pairs according to the
# second element, e.g. 'EEE'
for key,group in groupby(it,lambda p: p[1]):
# group might be something like [('rs001','EEE'),('rs008','EEE'),...]
# key would be something like 'EEE', the value that we're grouping by.
print('%s %s'%(' '.join([p[0] for p in group]),key))
一种方法是构建一个以列2数据为关键字的字典:
这种方法的优点是不需要将第2列的术语组合在一起(尽管问题中没有直接指定第2列是否预先分组)。在
这是给你看的
相关问题 更多 >
编程相关推荐