私はポケモン "データベース"をソートしようとしています。私はプログラムがすべてのポケモンを出力するようにしたい:名前、タイプ、進化する、進化する。それぞれの名前は私のpokemon
辞書のキーです。各値は、情報をキー(型、進化、進化)に含む別の辞書です。これらのキー値は望ましい出力です。問題はtype
キーがその値としてリストを持っていることであり、私はそれを実行しようとすると、私はこのエラーを取得する:辞書に値としてリストする - 'str'と 'list'オブジェクトを連結できません
Name: Bulbasaur
Traceback (most recent call last):
File "pokemon.py", line 51, in <module>
print("Type: " + info["type"])
TypeError: cannot concatenate 'str' and 'list' objects
次の私のコードです:私は出力がしたい
pokemon = {
"bulbasaur": {
"type": ["grass", "poison"],
"evo_from": "none",
"evo_to": "ivysaur"
},
"ivysaur": {
"type": ["grass", "poison"],
"evo_from": "bulbasaur",
"evo_to": "venusaur"
},
"venusaur": {
"type": ["grass", "poison"],
"evo_from": "ivysaur",
"evo_to": "none"
},
"charmander": {
"type": ["fire"],
"evo_from": "none",
"evo_to": "charmeleon"
},
"charmeleon": {
"type": ["fire"],
"evo_from": "charmander",
"evo_to": "charizard"
},
"charizard": {
"type": ["fire", "flying"],
"evo_from": "charmeleon",
"evo_to": "none"
},
"squirtle": {
"type": ["water"],
"evo_from": "none",
"evo_to": "wartortle"
},
"wartortle": {
"type": ["water"],
"evo_from": "squirtle",
"evo_to": "blastoise"
},
"blastoise": {
"type": ["water"],
"evo_from": "wartortle",
"evo_to": "none"
}
}
for poke, info in pokemon.items():
print("\nName: " + poke.title())
print("Type: " + info["type"])
print("Evolves from " + info["evo_from"])
print("Evolves to " + info["evo_to"])
次のようになります。
Name: Bulbasaur
Type: Grass, Poison
Evolves from none
Evolves to Ivysaur
ありがとう、 "。ジョイン"働いた。そして、私が探していた正確な出力を私にくれました。 – HWG
に注意してください。文字列を連結することは、 'str.format'や'% '演算子を使用して回避するのが一般的です(私の2番目の例のように)。複数の文字列を連結している場合、一連の一時オブジェクトが作成されますが、これは遅いです。 'str.format'メソッドはそれを避けます。 2つの文字列を連結するには、実際には問題ではありませんが、注意する価値があります。 –