[a、b、c、d]などのリストを取得し、隣接するインデックスが交換されるすべての順列のリストを出力する関数を探しています。[[b、 、C、D]、[、C、B、D]、[A、B、D、C]、[D、B、C、]]隣接スワップ順列のリストを作成する
おかげ
[a、b、c、d]などのリストを取得し、隣接するインデックスが交換されるすべての順列のリストを出力する関数を探しています。[[b、 、C、D]、[、C、B、D]、[A、B、D、C]、[D、B、C、]]隣接スワップ順列のリストを作成する
おかげ
簡単な方法、あなたはfor
ループを使用し、隣接するアイテムを交換することができます。tmp=l[:]
は浅いコピーを作成し、元のリストl
は変更されません。
がWhat exactly is the difference between shallow copy, deepcopy and normal assignment operation?から詳細をご覧ください:
l=['a', 'b', 'c', 'd']
for i in range(len(l)):
tmp=l[:]
tmp[i],tmp[i-1]=tmp[i-1],tmp[i]
print tmp
結果:
['d', 'b', 'c', 'a']
['b', 'a', 'c', 'd']
['a', 'c', 'b', 'd']
['a', 'b', 'd', 'c']
多くの人々は、コーディングサービスのようSOようになりますよう、任意のコードを記述せずに質問をするが、実際に私はこれがあると思います良い質問です。 これを行うには単純なPythonの方法を見つける価値があります。 – McGrady
ええ、私はここにコードを書くことができましたが、私は熟練したpythonerではないので、あなたの解決策から学んだ – Rik