私は提案したように私の最初のpythonプログラムとしてテキストアドベンチャーゲームを書いています。犬が食べられる可能性のあるもの、悪いもの、悪いもののリストを持っていたい。だから、私は思っI'dは、次の操作を行います。ジップを使用してインクリメンタルリスト名を関数に渡す辞書のリスト
badfoods = []
keys = ['Food','Problem','Imminent death']
food1 = ['alcohol', 'alcohol poisoning', 0]
food2 = ['anti-freeze', 'ethylene glycol', 1]
food3 = ['apple seeds', 'cyanogenic glycosides', 0]
badfoods.append(dict(zip(keys,food1)))
badfoods.append(dict(zip(keys,food2)))
badfoods.append(dict(zip(keys,food3)))
私に含める約40食品が実際にあります。私は、私もこれを行うことができます知っている: What is the best way to implement nested dictionaries? を私はまだキートンを書き込まないようにする方法が表示されない:
[{'Food':'alcohol', 'Problem':'alcohol poisoning', 'Imminent death':0},
{'Food':'anti-freeze', 'Problem':'ethylene glycol', 'Imminent death':1}
{'Food':'apple seeds, 'Problem':'cyanogenic glycosides', 'Imminent death':0}] ]
は、私もアピールされ、YAMLを使用することについて、ここにこの記事を読んでください。私はループのためですので、私はそれが仕事をdoesn't仮定
def poplist(listname, keynames, name):
listname.append(dict(zip(keynames,name)))
def main():
badfoods = []
keys = ['Food','Chemical','Imminent death']
food1 = ['alcohol', 'alcohol poisoning', 0]
food2 = ['anti-freeze', 'ethylene glycol', 1]
food3 = ['apple seeds', 'cyanogenic glycosides', 0]
food4 = ['apricot seeds', 'cyanogenic glycosides', 0]
food5 = ['avocado', 'persin', 0]
food6 = ['baby food', 'onion powder', 0]
for i in range(5):
name = 'food' + str(i+1)
poplist(badfoods, keys, name)
print badfoods
main()
:
Plusは、私がある、私はAPPEND 40回を書い回避に私の元のアプローチを把握can'tことをイライラしています文字列を作成してそれを関数に渡すと、関数poplistはそれを変数名として認識しません。しかし、これを修正する方法があるのか、YAMLを使うかキーを毎回書き出す必要があるかどうかはわかりません。私は困っているので、どんな助けもありがとう!
、このような「ベスト・プラクティス」のための動機は、彼らが本当にために作られた言語のようにPythonでのように強くありません、イモ。 –
@KarlKnechtel:コードとデータをまとめることは、どの言語でも悪い考えです。説明のためにこの非常に質問を参照してください。 – georg