【发布时间】:2014-07-23 09:11:17
【问题描述】:
嗯
我有一个独特的元素组合(A B C D E F)
from itertools import combinations
data = ['A', 'B', 'C', 'D', 'E', 'F'];
comb = combinations(data, 2);
d = [];
for i in comb:
d.append([i[0], i[1]]);
print d
这回给我了:
[['A', 'B'],
['A', 'C'],
['A', 'D'],
['A', 'E'],
['A', 'F'],
['B', 'C'],
['B', 'D'],
['B', 'E'],
['B', 'F'],
['C', 'D'],
['C', 'E'],
['C', 'F'],
['D', 'E'],
['D', 'F'],
['E', 'F']]
问题是,如何以更简单的方式对第 N 行不重复第 (N-1) 行的元素 [0] 或元素 [1] 的方式进行排序:
AB (This line can have any element)
CD (This line can't have A or B)
EF (This line can't have C or D)
AC (This line can't have E or F)
...
【问题讨论】:
-
你不需要在语句的末尾加上分号(你也不应该)。此外,您可以简单地使用
d = map(list, combinations(data, 2))生成组合列表d。 -
@JayanthKoushik 为什么不应该使用分号?谢谢:D
-
@sundarnatarajサンダーナタラジ 抱歉占用您的时间,我刚开始认为不可能按照我想要的方式组织...现在我正在尝试做一些数学计算来验证这一点...
-
@user3701822:你不应该使用分号,因为它没有任何用处并且违反了 python 风格的约定。它皱着眉头......
-
@JayanthKoushik 啊,我通常使用是因为两个原因,一个是因为 C 和 PHP 的习惯,另一个原因是因为有时我在同一行中编写多个东西......
标签: python arrays sorting loops organization