2

キー 'a' - 'z' を持つ "possible" と呼ばれるリストでいっぱいの辞書を持っています。各キーには、'a' から 'z' までのリストの値があります。基本的に、26個のアルファベット。

文字列を小文字にクリーンアップし、句読点を取り除き、各単語を「cleanedWords」という名前のリストに保存します。

リストを調べて、リスト内の単語に 2 文字しかない場合は、2 文字の単語の両方の文字のキーから値「c」を削除します。次に、次の 2 文字の単語に移動して繰り返します。

これはエラーのあるスニペットです:

for y in cleanedWords:
    if len(y) == 2:
        for i in y:
            possible[i].remove('c')

エラーは次のとおりです。

Traceback (most recent call last):
  File "F:\python\crypto\cipher.py", line 83, in <module>
    possible[i].remove('c')
ValueError: list.remove(x): x not in list

明らかに私は何か間違ったことをしています。誰かが私を正しい方向に向けることができますか? 私がしたように「y」を呼び出すことはできませんか?

タイラー

4

2 に答える 2

1

わかりました、私はあなたの(詳細な回答が必要な場合は共有してください)データ構造に精通していませんが、コードを次のように置き換える必要があるようです:

for word in (x for x in cleanedWords if len(x) == 2):
    for ch in word:
        if 'c' in possible[i]:
            possible[ch].remove('c')
于 2012-11-06T03:37:35.587 に答える
0
for y in cleanedWords:
    if len(y) == 2:
        print y
        for i in y:
            try:
                possible[i].remove('c')
            except ValueError:
                pass
于 2012-11-06T06:28:43.410 に答える