【发布时间】:2016-04-19 14:44:07
【问题描述】:
假设我有以下列表:
letters = ['a','b','c']
numbers = ['one','two']
others = ['here','there']
我想要所有值的所有可能组合。我正在执行以下操作:
from itertools import permutations
b = []
b.extend(letters)
b.extend(numbers)
b.extend(others)
result1 = list(permutations(b,2))
结果还可以。但我更具体地想要了解组合的“类型”。例如结果应该是:
('a','b','letters-letters')
或
('a','one','letters-numbers')
('one','a','letters-numbers')
我正在使用以下代码:
from itertools import product
result2=[]
result2.extend([x+('letter-letter',) for x in list(permutations(letters ,2))])
result2.extend([x+('number-number',) for x in list(permutations(numbers,2))])
result2.extend([x+('other-other',) for x in list(permutations(others,2))])
result2.extend([x+('number-letter',) for x in list(product(numbers,letters))])
result2.extend([x+('number-letter',) for x in list(product(letters,numbers))])
result2.extend([x+('number-others',) for x in list(product(numbers,others))])
result2.extend([x+('number-others',) for x in list(product(others,numbers))])
result2.extend([x+('letters-others',) for x in list(product(letters,others))])
result2.extend([x+('letters-others',) for x in list(product(others,letters))])
有没有更快速、更优雅的方法?
【问题讨论】: