Tôi có một danh sách [2,3,4]. Làm cách nào để tìm tất cả các phần tử có thể có trong danh sách? Vì vậy, đầu ra phải là: [2,3,4] [2,4,3] [3,2,4] [3,4,2] [4,2,3] [4 , 3,2]Làm cách nào để tìm tất cả các phần tử có thể có trong danh sách?
Trả lời
bạn có thể làm điều này dễ dàng sử dụng itertools.permutations()
:
>>> from itertools import permutations
>>> list(permutations([2, 3, 4]))
[(2, 3, 4), (2, 4, 3), (3, 2, 4), (3, 4, 2), (4, 2, 3), (4, 3, 2)]
Và nếu vì một lý do bạn cần danh sách thay vì các bộ:
>>> map(list, permutations([2, 3, 4]))
[[2, 3, 4], [2, 4, 3], [3, 2, 4], [3, 4, 2], [4, 2, 3], [4, 3, 2]]
Hy vọng danh sách OP có tất cả các yếu tố độc đáo. – Droogans
Có thể thêm liên kết vào http://docs.python.org/library/itertools.html#itertools.permutations? –
bạn đang tìm kiếm permutati ons, một cái gì đó như thế này nên làm việc:
import itertools
itertools.permutations([2,3,4])
một sự khởi đầu của một chương trình xổ số lớn trừ dữ liệu sẽ được formated như vậy
ist(permutations([2, 3, 4],[7,2,5],[8,1,4,9]))
vấn đề là nhóm đầu tiên được sử dụng để tạo ra các con số trong đầu tiên cột chỉ các secound cho 2 cột và 3 là dành cho 3
đầu ra sẽ là một bộ 3 số chỉ là các hoán vị là khác nhau
Chỉ cần để bạn biết:
def unique_perms(elems):
"""returns non-duplicate permutations
if duplicate elements exist in `elems`
"""
from itertools import permutations
return list(set(permutations(elems)))
Nhưng nếu bạn đang làm một cái gì đó như thế này:
print len(unique_perms(elems))
Sau đó thử này:
def fac(n):
"""n!"""
if n == 1: return n
return n * fac(n -1)
def unique_perm_count(elems)
n = len(elems)
return fac(2 * n)/fac(n) ** 2
- 1. Làm cách nào để tôi có thể cắt tất cả các phần tử trong danh sách bằng Groovy?
- 2. Làm cách nào để hiển thị tất cả các phần tử trong danh sách mảng?
- 3. Làm cách nào để tìm danh sách trong danh sách các danh sách có tổng số phần tử lớn nhất?
- 4. Định dạng tất cả các phần tử trong danh sách
- 5. Thu hẹp tất cả các phần tử trong danh sách
- 6. Tôi có thể lấy danh sách tất cả các phần tử iOS ở đâu?
- 7. Làm cách nào để kiểm tra xem tất cả các mục trong danh sách có trong danh sách khác không?
- 8. Làm cách nào để có được tất cả các phân vùng của danh sách trong Mathematica?
- 9. Làm cách nào để hợp nhất tất cả các thành phần của danh sách trong R?
- 10. Cách áp dụng toán tử logic cho tất cả các phần tử trong danh sách python
- 11. Làm cách nào để có danh sách tất cả các lệnh shell hiện có
- 12. In tất cả các tập hợp con có thể có trong danh sách
- 13. Danh sách tất cả các lỗi PHP có thể
- 14. Android, làm cách nào để có danh sách tất cả các tệp trong một thư mục?
- 15. Tìm một phần tử trong một danh sách các hàng
- 16. Làm cách nào để tìm một phần tử cụ thể trong Danh sách <T>?
- 17. Làm thế nào tôi có thể tìm thấy tất cả các kết hợp có thể có của một danh sách các danh sách (bằng Python)?
- 18. Làm cách nào để có danh sách các chỉ mục của các phần tử khác không trong danh sách?
- 19. Làm cách nào để có danh sách tất cả các loại được nạp trong C#?
- 20. Làm cách nào để lấy danh sách tất cả các tệp có phần mở rộng ESY trong một thư mục?
- 21. Làm cách nào để áp dụng itertools.product cho các phần tử của danh sách danh sách?
- 22. Cách tìm các phần tử phổ biến trong danh sách các danh sách?
- 23. Làm cách nào để bạn có thể tách danh sách thành từng phần tử x và thêm các phần tử x đó vào danh sách mới?
- 24. Làm cách nào để nâng cấp tất cả các gói có thể nâng cấp bằng ppm?
- 25. Tìm các phần tử không phổ biến trong danh sách
- 26. Làm cách nào để xóa tất cả các phiên bản của một phần tử khỏi danh sách bằng Python?
- 27. Làm cách nào để lấy danh sách và tạo tất cả các danh sách có độ dài ngày càng tăng?
- 28. Làm cách nào để có danh sách tất cả các assembly hiện đang được nạp?
- 29. Lấy danh sách tất cả các phần tử trong một mảng JavaScript
- 30. Làm cách nào để có được tất cả các phần tử của một thẻ HTML cụ thể trong javascript?
thể trùng lặp của [Làm thế nào để tạo ra tất cả các hoán vị của một danh sách bằng Python] (http://stackoverflow.com/questions/104420/how-to-generate-all-permutations-of-a-list-in-python) –