Dav*_*ker 1 python combinations list-comprehension
我有一组列表形式的元组:
[(1, 2), (3, 4), (5, 6), (7, 8)]
Run Code Online (Sandbox Code Playgroud)
在这样的顺序中没有必要,它也可以:
[(1, 4), (2, 6), (3, 5), (7, 8)]
Run Code Online (Sandbox Code Playgroud)
这些列表有两个属性:
n(像[1, 2, 3,..n])的范围n 甚至n 大于2
所有值都是唯一的(没有值重复).
所以,让我说我有:
a = [(1, 2), (3, 4), (5, 6), (7, 8)]
Run Code Online (Sandbox Code Playgroud)
创建元组列表的方法是什么b,a这样就不会有原始元组?
所以例如
b = [(1, 8), (3, 7), (2, 6), (4, 5)]
Run Code Online (Sandbox Code Playgroud)
没事,但是
b = [(1, 2), (3, 7), (5, 6), (4, 8)]
Run Code Online (Sandbox Code Playgroud)
不好,因为它包含(1, 2)并(5, 6)呈现在a
PS :( 标题很乱,但我不知道怎么解释得更好(很乐意编辑).
建立在我天真的方法评论:
a = [(1, 2), (3, 4), (5, 6), (7, 8)]
b = [(x[1], y[0]) for x, y in zip(a, a[1:]+a[:1])]
# [(2, 3), (4, 5), (6, 7), (8, 1)]
Run Code Online (Sandbox Code Playgroud)
这将来自相邻对的元素配对,从而保证原始列表中没有对