2016-08-01 2 views
0
class SpreadsheetRow(object): 
    def __init__(self,Account1): 
     self.Account1=Account1 
     self.Account2=0 

私はlistofSpreadsheetRowObjectsと呼ばれるオブジェクトのリストと、Var1:Account2(dict_var1_to_account_2と呼ばれる)を関連付ける辞書を満たすもう1つのループを持っています。しかし、キーがオブジェクトのAccount1と一致する場合、そのオブジェクトの各値にその辞書の値を取得する必要があります。そこで、基本的クラスのリスト内のオブジェクトに特定の辞書キーを関連付けるにはどうすればよいですか?

、私が持っている:listOfSpreadsheetRowObjectsがあるので、

for k, v in dict_var1_to_account2.iteritems(): 
    if k in listOfSpreadsheetRowObjects: 
     if account1=k: 
       account2=v 

しかし、それは働いていない、と私はそれが私の最初の "if" 文の疑い:

listofSpreadsheetRowObjects=[SpreadsheetRow1, SpreadsheetRow2, SpreadsheetRow3] 
dict_var1_to_account2={1234:888, 1991:646, 90802:5443} 

私はこれを試してみましたそれらのオブジェクトのリストだけでは、実際にはそのリスト内のオブジェクトの属性とは関係していないと思います。しかし、私は (listOfSpreadsheetRowsのitemにはk == item.account1):を試してみましたが、何も引っ張っていないようです。

どのようにして各オブジェクトのaccount1にアクセスするので、必要に応じて一致させることができますか?

結局、私は次の情報を3つのオブジェクトが必要です:

SpreadsheetRow 
self.Account1=Account1 
self.Account2=(v from my dictionary, if account1 matches the key in my dictionary) 

答えて

0

を、最初の行オブジェクトを反復することが容易になるように見えますし、各1つのチェックのためにそのaccount1がである場合dict:

for row in listofSpreadsheetRowObjects: 
    if row.Account1 in dict_var1_to_account2: 
     row.Account2 = dict_var1_to_account2[row.Account1] 
+0

オハイオ州グーグルナイスそれはとてもばかげて単純です、なぜ私はそれを逆転することを考えなかったのですか?私の英雄、ありがとう@BrenBarn! – user3097421

関連する問題