2015-03-31 105 views
-2

我是Python的新手,真的很難完成這個任務。Python-與列表掙扎

我在下面的格式

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

現在我找到對的ID對他們來說,「M」是相同的了的數據。 因爲M是1,2和3

同一輸出應爲[1,2],[1,3]和[2,3]

任何想法?

感謝

+1

這並不完全清楚是什麼問題,如果你提出到目前爲止你已經嘗試過什麼,這一步你特別需要 – WakkaDojo 2015-03-31 13:07:42

+0

幫助,請儘量讓你的問題將是有益的清楚你的進步方式。 – diffracteD 2015-03-31 13:09:46

+0

對不起,我會把它弄清楚 – 2015-03-31 13:12:32

回答

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 []