2013-08-13 38 views
15

Edit: Đây không phải là một bản sao chính xác của How to get all possible combinations of a list’s elements?Nhận kết hợp độc đáo của các yếu tố từ một danh sách python

Chủ đề này là về việc tìm kiếm sự kết hợp độc đáo trong khi chủ đề khác là về việc tìm kiếm tất cả các kết hợp.

Nếu tôi có một danh sách python:

L = [1,2,3,4] 

cách tốt nhất để có được tất cả các thể kết hợp độc đáo là những gì của 3 yếu tố từ danh sách như dưới đây:

["1,2,3", "1,2,4", "2,3,4", "3,4,1"] 

Trình tự các yếu tố trong các kết hợp không quan trọng. Ví dụ: "1,2,3""3,2,1" sẽ được coi là kết hợp tương tự.

Tôi có thể viết một vài vòng để làm điều này nhưng tôi nghĩ có thể có một lớp lót có thể làm tương tự.

Trả lời

25

Bạn cần itertools.combinations:

>>> from itertools import combinations 
>>> L = [1, 2, 3, 4] 
>>> [",".join(map(str, comb)) for comb in combinations(L, 3)] 
['1,2,3', '1,2,4', '1,3,4', '2,3,4']