0

私は Wordle ボットの作成に取り組んでおり、13,000 語すべてでどのように実行されるかを確認したいと考えていました。問題は、これを for ループで実行していて、非常に効率が悪いことです。30 分間実行した後、約 5% にしか到達しません。その間ずっと待つこともできましたが、最終的には 10 時間以上かかります。もっと効率的な方法があるはずです。私はPythonが初めてなので、どんな提案でも大歓迎です。

ここのコードは、毎回推測を制限するために使用されるコードです。「a」、「b」、「c」を含む単語を検索する方法はありますか? 3回別々に実行する代わりに。現在、新しい文字を検索する必要があるたびに、containts、nocontains、および isletter がそれぞれ実行されます。それらをまとめて検索すると、時間が大幅に短縮されます。

#Find the words that only match the criteria
def contains(letter, place):
    list.clear()
    for x in words:
        if x not in removed:
            if letter in x:
                if letter == x[place]:
                    removed.append(x)
                else:
                    list.append(x)
            else:
                removed.append(x)
def nocontains(letter):
    list.clear()
    for x in words:
        if x not in removed:
            if letter not in x:
                list.append(x)
            else:
                removed.append(x)
def isletter(letter, place):
    list.clear()
    for x in words:
        if x not in removed:
            if letter == x[place]:
                list.append(x)
            else:
                removed.append(x)
4

2 に答える 2