0

これが私の現在のコードです:

class city1:
    dict = {"north":"city2", "east": 0, "south": 0, "west": "city3"}

validcmds = ['north', 'east', 'south', 'west']
input=raw_input(">>")
input=set(input.split())
validcmds=set(validcmds)
output = list(validcmds.intersection(input))
print city1.dict(output)

この行の何が問題なのかわかりません:

print city1.dict(output)

基本的に、city1 クラスの dict で出力を検索したいだけです。それは私のテキストベースのRPG用です:)

4

3 に答える 3

1

まず、という言葉を使わないでくださいdict。その際、組み込みdict()メソッドをマスクします。次に、d.get(key)メソッドを使用して辞書から要素を取得できます。

ディクショナリから要素を取得した後でも、コードが現在の状態で機能すると確信していないため、コードを確認することをお勧めします。

于 2012-04-17T18:35:27.290 に答える
0

出力はキーのリストです。一度にキーのリストを使用してdictにキーを設定することはできません。やったほうがいい: print [city1.dict[x] for x in output]

ちなみに、inputはメソッドであり、入力に割り当てることで、そのコマンドを削除しました。(ここでは重要ではありませんが、知りたいと思うかもしれません)

于 2012-04-17T18:33:48.447 に答える
0

辞書にアクセスするために括弧は使用しません。print city1.dict[output]代わりに使用してください。ただし、辞書のキーからリストを作成しているように見えます。そのようなリストにインデックスを付けようとすると、Python はこれがハッシュ可能ではないと文句を言います。

複数のキーが含まれている場合outputは、代わりにこれを試してください。

print [city1.dict[elem] for elem in output]

また、データ構造にその型にちなんで名前を付けるのも悪い習慣です。dictなど、よりわかりやすい名前に変更することを検討しcity_dictます。

于 2012-04-17T18:28:43.393 に答える