【发布时间】:2016-07-02 11:55:14
【问题描述】:
我正在尝试创建组合。示例代码如下:
a = [1, 2, 3], [1, 4, 5]
combinations = list(itertools.product(*a))
输出:
[(1, 1), (1, 4), (1, 5), (2, 1), (2, 4), (2, 5), (3, 1), (3, 4), (3, 5)]
我不需要组合(1,1)。
我已经尝试过以下代码:
for comb in combinations:
if comb[0] == comb[1]:
combinations.remove(comb)
但是因为我必须对大量数据执行此操作。时间太长了。
此外,组合的元素应该等于列表中的项目数。
例如:a = [1,2,3], [2,3,7],[4,5,1]
每个组合中的元素为 3,例如 (1,2,4)
请提出一种避免此类组合的方法。
【问题讨论】:
-
您是否只想避免
(1, 1, 1)或(1, 1, 2)和(1, 2, 1)? -
@poke:只需要考虑具有唯一值的组合。所以 (1,1,2) & (1,2,1) 应该被丢弃。
标签: python list combinations