Python-与列表斗争

时间:2015-03-31 13:04:55

标签: python

我是Python的新手,并且真的在努力完成这项任务。

我获得了以下格式的数据

ID  M  R ###
1 1193 5 978300763
2 1193 3 978299712
2 1953 4 978298775
3 1193 3 978300025.....

现在我要找到“M”相同的ID对。 因为1,2和3的M是相同的。

输出应为[1,2],[1,3]和[2,3]

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

>>> data = '''ID  M  R ###
1 1193 5 978300763
2 1193 3 978299712
2 1953 4 978298775
3 1193 3 978300025'''

>>> data = [line.split() for line in data.splitlines()[1:]]
>>> from itertools import groupby, combinations
>>> key = lambda x: x[1]
>>> for k, g in groupby(sorted(data, key=key), key):
        print(k, list(combinations(map(lambda x: x[0], g), 2)))

1193 [('1', '2'), ('1', '3'), ('2', '3')]
1953 []