繁体   English   中英

python列出没有itertools的所有组合

[英]python list all combiniations without itertools

  • 我只想制作清单的所有组合(两种尺寸)
  • 例如:input = [1,2,3] => output = [[1,2],[1,3],[2,3]]
  • 如何使此代码更简洁,更简单?(单线吗?)
  • 这并不意味着列表理解。

我的代码

def all_combinations(input_lst):
    return_lst=[]
    for i in range(0, len(input_lst)-1):
        for j in range(i+1, len(input_lst)):
            return_lst.append([input_lst[i], input_lst[j]])
    return return_lst
[(input_lst[i], input_lst[j]) for i in xrange(len(input_lst) - 1) for j in xrange(i + 1, len(input_lst))]
l = [1,2,3,4,]
=> [(2, 1), (3, 1), (4, 1), (3, 2), (4, 2), (4, 3)]

1.使用enumerate

[ (x,y) for (i,y) in enumerate(l)  for x in l[i+1:] ]

2.使用index

[ (x,y) for y in l  for x in l[l.index(y)+1:] ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM