1

私はpythonは初めてですが、perlの経験があります。だから私はこのような辞書を持っています

d = { '123' : 'F'
      '124' : 'S'
      '125' : 'F'
    }

キー値を持つリストのループを実行していますが、辞書に存在しないものもあります。コードを実行するとエラーが発生します

print(d[str(row[0])])


KeyError: '126'

Perl は決して私にこれをしません。無知なプログラマーを助けてください。

4

3 に答える 3

2

例外を発生させないdict.get()を使用できます。KeyError

キーがディクショナリにある場合はキーの値を返し、そうでない場合はデフォルトを返します。default が指定されていない場合、デフォルトで None に設定されるため、このメソッドは KeyError を発生させません。

print(d.get(str(row[0])))

または、キーで値を取得する前に、キーが辞書にあるかどうかを確認できます。

key = str(row[0])
if key in d:
    print(d[key])

または、KeyError例外をキャッチすることもできます。

key = str(row[0])
try:
    print(d[key])
except KeyError:
    print("Key '{}' not found".format(key)
于 2014-03-12T02:27:11.017 に答える
1

好ましい方法は

my_dict.get(key,None)
于 2014-03-12T02:51:16.053 に答える