2

このサイトを調べて問題を解決しようとしましたが、特定の問題を抱えている人はいないと思いますか? 私がやろうとしているのは、反復してリストの順列を繰り返し作成することです。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]、私がやりたかったことに役立ちました。あ、はい。ありがとう!

4

1 に答える 1