我是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]
有什么想法吗?
由于
答案 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 []