このサイトを調べて問題を解決しようとしましたが、特定の問題を抱えている人はいないと思いますか? 私がやろうとしているのは、反復してリストの順列を繰り返し作成することです。4 面のサイコロを 3 回振った場合に考えられるすべての結果が必要な場合と同様です。私のコードが実際にこの目的で機能するかどうかはわかりませんが、当面の問題は次のとおりです。
私はこのコードを持っています:
ops = ["add", "sub", "mul", "div"]
def opsy():
opslist=["cat", "dog", "cow"]
for w in ops:
opslist[0] = w
for x in ops:
opslist[1] = x
for y in ops:
opslist[2] = y
opsarray.append(opslist)
そして、私はこのエラーを受け取ります:
IndexError: 'list assignment index out of range'
が空のリストとして定義されているためopslist
、(上記のコードに見られるように) 変更したのにエラーが発生するのはなぜですか? また、「append
」は私が望むものではないと思います。アイテムを追加するだけでなく、特定のインデックスを変更できる必要があります。また、モジュール (itertools) も使用したくありません。これを自分でプログラムしたいと思っています。どうもありがとう。
編集:なぜエラーが発生するのかわかりませんか? とにかく、マルティノーのコメントはopsarray = [[w, x, y] for y in ops for x in ops for w in ops]
、私がやりたかったことに役立ちました。あ、はい。ありがとう!