2

実際の順列を返すように順列を取得する方法がわかりません。さまざまなことを試してみましたが、役に立ちませんでした。私が使用したコードは、itertools import permutations と permutations([1,2,3]) からのものでした。ありがとう!

4

3 に答える 3

2

これはあなたの質問に答えていないかもしれません ('and not' の後の部分が欠けているようです) が、あなたのコードからは、おそらくreprイテレータのitertools.permutations. すべてのアイテムにアクセスするために、通常のリストと同様に、このオブジェクトを反復処理できます。リストに変換したい場合は、次のようにラップできますlist

>>> from itertools import permutations
>>> permutations([1, 2, 3])
<itertools.permutations object at 0x1e67890>
>>> list(permutations([1, 2, 3]))
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]

ただし、上記のように、イテレータは通常のリストと同じように繰り返すことができます (イテレータを返す利点は、シーケンス全体がすぐにメモリにロードされず、代わりに「必要に応じて」ロードされることです)。

>>> for perm in permutations([1, 2, 3]):
...     print(perm)
... 
(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)
于 2013-02-12T07:46:13.557 に答える