Vì vậy, tôi có một danh sách liệt kê các chuỗiPython tất cả các kết hợp của một danh sách liệt kê
[['a','b'],['c','d'],['e','f']]
và tôi muốn để có được tất cả các kết hợp có thể, như vậy mà kết quả là
[['a','b'],['c','d'],['e','f'],
['a','b','c','d'],['a','b','e','f'],['c','d','e','f'],
['a','b','c','d','e','f']]
Cho đến nay Tôi đã đưa ra đoạn mã này
input = [['a','b'],['c','d'],['e','f']]
combs = []
for i in xrange(1, len(input)+1):
els = [x for x in itertools.combinations(input, i)]
combs.extend(els)
print combs
phần lớn theo sau câu trả lời trong this post.
Nhưng mà kết quả trong
[(['a','b'],),(['c','d'],),(['e','f'],),
(['a','b'],['c','d']),(['a','b'],['e','f']),(['c','d'],['e','f']),
(['a','b'],['c', 'd'],['e', 'f'])]
và tôi hiện đang bối rối, cố gắng tìm một cách pythonic thanh lịch để giải nén những tuples.
Tốt. Tôi thường ngạc nhiên trước sự mạnh mẽ của 'itertools'. –
Hoàn hảo. Chính xác những gì tôi đang tìm kiếm. Cảm ơn! –