【发布时间】:2018-01-11 02:43:55
【问题描述】:
您好,我正在使用 python。我正在处理一个数字列表
A = [7,9,6,8]
我想获得按顺序排列的数字的排列。期望的输出如下:
[(6), (7), (8), (9), (6, 7), (7, 8), (8, 9), (6, 7, 8), (7, 8, 9)]
我的代码如下:
>>> import itertools
>>> A = [6,8,7,9]
>>> def comb(myc: list):
retcol = []
for i in range(1,len(myc)):
retcol += list(itertools.combinations(myc,i))
return retcol
>>> S = sorted(A, key=int)
>>> comb(S)
[(6,), (7,), (8,), (9,), (6, 7), (6, 8), (6, 9), (7, 8), (7, 9), (8, 9), (6, 7, 8), (6, 7, 9), (6, 8, 9), (7, 8, 9)]
>>>
[(6,), (7,), (8,), (9,), (6, 7), (6, 8), (6, 9), (7, 8), (7, 9), (8, 9), (6, 7, 8), (6, 7, 9), (6, 8, 9), (7, 8, 9)]
我有两个问题:
- 我怎样才能只获得如上面所需输出中所示的序列中的组合。
- 有没有更好的方法来获得这样的结果而不需要明确的
for loop?也许是list comprehension
【问题讨论】:
标签: python