fab*_*aia 5 python combinations list
给定一个列表,我如何获得两个非连续项之间的所有组合?
例如,输入[1, 2, 3, 4, 5]
如何获得输出[(1,3), (1,4), (1,5), (2,4), (2,5), (3,5)]
?
我不感兴趣的(1,2)
,(2,3)
,(3,4)
或(4,5)
因为他们是连续的(即彼此相邻)在列表中,但一切我很感兴趣.
在Python中最常用的方法是什么?
一个简单的列表理解:
>>> lst = [1, 2, 3, 4, 5]
>>> [(a, b) for i, a in enumerate(lst) for b in lst[i+2:]]
[(1, 3), (1, 4), (1, 5), (2, 4), (2, 5), (3, 5)]
Run Code Online (Sandbox Code Playgroud)