私はリスト[2,3,4]を持っています。リスト内の要素の可能なすべてのシーケンスを見つけるにはどうすればよいですか? ため、出力は次のようになります。 [2,3,4] [2,4,3] [3,2,4] [3,4,2] [4,2,3] [4 1,3,2]リスト内の要素のすべてのシーケンスを見つける方法は?
6
A
答えて
21
あなたは簡単に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)]
そして、あなたはリストの代わりにタプルを必要とするいくつかの理由であれば:あなたはpermutatiを探している
>>> map(list, permutations([2, 3, 4]))
[[2, 3, 4], [2, 4, 3], [3, 2, 4], [3, 4, 2], [4, 2, 3], [4, 3, 2]]
+3
希望OPリストにはすべてのユニークな要素があります。 – Droogans
+1
http://docs.python.org/library/itertools.html#itertools.permutationsへのリンクを追加する場合がありますか? –
5
アドオンは、このようなものは動作するはずです:
データを除いて素晴らしい抽選プログラムの開始は次のようにフォーマットされますimport itertools
itertools.permutations([2,3,4])
2
な
ist(permutations([2, 3, 4],[7,2,5],[8,1,4,9]))
問題は、最初のグループは最初の数字を作成するために使用されていることです出力順列が異なるだけということ3つの数字の組になり列のみ secoundは、2列のためであり、3は第3
するためのものである
1
def unique_perms(elems):
"""returns non-duplicate permutations
if duplicate elements exist in `elems`
"""
from itertools import permutations
return list(set(permutations(elems)))
しかし、あなたはこのような何かをやっている場合:すべての順列を生成する[方法の
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. シーケンス内の不足要素を見つける方法は?
- 2. リスト内の要素のインデックスを見つける方法は?
- 3. リストの要素をリスト内の要素のシーケンス番号で見つけて表示する
- 4. リスト内の要素を見つける
- 5. コレクションフレームワークのリスト内の要素を見つける方法
- 6. リスト内の共通要素を見つける方法
- 7. リスト内のすべての要素を掛ける方法
- 8. ベクトル内の要素間のシーケンスを見つける
- 9. リストのリスト内の要素の出現をPythonで見つける方法
- 10. 要素内の要素を見つける方法
- 11. k回以上存在するリスト内のすべての要素を見つける最良の方法
- 12. リストのリスト内のインデックスリスト要素を見つける
- 13. セレンのwebdriverでリスト要素を見つける方法は?
- 14. は、リスト内の特定の要素を見つける
- 15. 2つのリストを比較するときにすべての要素を見つける方法は?
- 16. Python:要素の名前の一部と一致するリスト内の要素を見つける方法
- 17. 各ループ内の要素のクラスを見つける方法
- 18. 文字列内のリストの要素を見つける
- 19. シーケンス内の隣接するペアを見つける方法、Python
- 20. 値の配列で3つのシーケンスをすべて見つける方法
- 21. 2つのシーケンス間で同じ要素を見つける
- 22. Pythonの行列(リストのリスト)の特定の要素を見つける方法
- 23. シーケンス内のセルの出現を見つける方法(パンダ)
- 24. スキーム - リスト要素の出現のすべてのインデックスを見つける
- 25. 配列内の要素を見つける方法
- 26. Jquery:DIV内の要素を見つける
- 27. Jschemeリスト内のすべての出現を見つける方法?
- 28. array(Ramda.js way)内の要素のすべての出現のインデックスを見つける方法は?
- 29. 配列内の特定の要素のすべてのインデックスを見つける方法は?
- 30. SML - リスト内の要素を見つけてその値を変更する
が重複する可能性:これを試して次に
をちょうどあなたが知っているのでPythonのリスト](http://stackoverflow.com/questions/104420/how-to-generate-all-permutations-of-a-list-in-python) –