辞書の特定のキー/値をforループ内の別の関数に渡す方法を学びたいと思っています。 「ある」のキーはすべて同じ初期文字列を共有し、次のように末尾の整数によってインクリメントされます。辞書キーのサブセットを反復する
data = {}
data["HMD1"] = [a,b,c]
data["HMD2"] = [d,f,g] #and so on...
同じ辞書witin、異なる名前を持つ他のキーがあります。今度はforループの中で、 "HMD"で始まる各キーの値を別の関数に渡したいと思います。ここで失敗したの最小限の作業例は次のとおりです。
これはevalは()変数が、データの重要ではない「HMD1」を評価しようとするため、貧しい人々の推測では、もちろん、それがエラーを返しましたdata = {}
data["HMD1"] = [0,2,3]
data["HMD2"] = [5,6,4]
data["not"] = 1237659398
data["HMD3"] = [1,1,1]
def dummyfun(vargin):
print(vargin)
return vargin
for f in range(1,2,1):
out = dummyfun(data[eval(''.join(("HMD",str(f))))])
。誰でもこれを正しく行う方法を知っていますか?
ない場合には、キーが辞書にない場合、あなたは、最初にそれをチェックし、例外をキャッチするか、デフォルト値を提供することができます失敗します。 "と" HMD2 "ではなく、" HMD "で始まる他のキーはありませんか?もちろん、私が知っていればそれはちょうどいくつかのキーになるでしょう。私はそれをコード化することができますが、私はforループでそれを行うことができる必要があります。 – willpower2727
@ willpower2727の場合、条件式 'if'文を' if key == 'HMD1''(あるいはあなたが望むもの)に変更します。 'for key in data'は' data' dictのすべてのキーを繰り返し処理するので、if文で実際の解析が行われていることに注意してください。 –