【发布时间】:2018-08-20 12:15:17
【问题描述】:
我有一组列表形式的元组:
[(1, 2), (3, 4), (5, 6), (7, 8)]
这样的顺序没必要,也可以:
[(1, 4), (2, 6), (3, 5), (7, 8)]
这些列表有两个属性:
- 如果排序和展平,它们会变成从 1 到
n的范围(如[1, 2, 3,..n]) -
n是偶数 n大于 2所有值都是唯一的(没有重复值)。
所以,假设我有:
a = [(1, 2), (3, 4), (5, 6), (7, 8)]
有什么方法可以从a 中创建元组列表b 以使其中没有原始元组?
例如
b = [(1, 8), (3, 7), (2, 6), (4, 5)]
没问题,但是
b = [(1, 2), (3, 7), (5, 6), (4, 8)]
不行,因为它包含a中的(1, 2)和(5, 6)
PS:(标题乱七八糟,但我不知道如何更好地解释(将很乐意编辑)。
【问题讨论】:
-
天真的方法:展平、逐个旋转、重新分块。
-
你好。你想要一种方法来创建一个列表 b 吗?还是您想要一种创建所有此类列表的方法?或者,最后,只有 m 个(如果它们存在的话)?
-
@Lorenzo:只要一份满足这些条件的清单就足够了
-
那么@schwobaseggl 的回答就足够了。
标签: python combinations list-comprehension