我有一个列表,我想要一个列表中所有可能的项目组合。
from itertools import combinations
l = [1,2,3]
for i in combinations(l,2):
print(i) // (1, 2) (1,3) (2,3)我想要相同的输出,但不需要使用迭代工具。我试过:
l = [1,2,3]
for i in l:
for j in l:
print((i,j)) // (1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)在不使用迭代工具的情况下,如何获得相同的输出?
发布于 2018-12-13 08:50:07
也许试试这个
l = [1, 2, 3]
for i in l:
for j in l:
if(j <= i):
continue
else:
print(i, j)发布于 2018-12-13 08:50:12
您可以在文档中找到itertools.combinations的示例实现:
大致相当于: def组合(可迭代,r):#组合(‘ABCD’,2) -> AB AC AD BC BD CD #组合(范围(4),( 3) -> 012 013 023 123池=元组(可迭代)n=len(池)如果r> n:返回索引=列表(范围(R)),则产生元组(用于指数中的i),而True: i在反向(范围(R)):如果指示数!= i+n- r:断开否则:+= 1表示j在范围内(i+1,r):指标j=指标j-1+1产量元组(指数中i的池i)
发布于 2018-12-13 10:16:12
为了提高效率,您可以在一个班轮中这样做:
l = [1, 2, 3]
([print(i, j) for i in l for j in l])https://stackoverflow.com/questions/53758019
复制相似问题