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

У меня есть цикл while, который заполняет список объектов (называемый listofSpreadsheetRowObjects) и другой цикл, который заполняет словарь, ассоциирующий Var1: Account2 (называемый dict_var1_to_account_2). Но мне нужно получить значение словаря в каждом объекте, если ключ соответствует учетной записи объекта1.Как связать определенный ключ словаря с объектом в списке классов?

Так в основном, у меня есть:

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

Я попытался это:

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

Но, это не работает, и я подозреваю, что это мой первый "если" заявление, потому что listOfSpreadsheetRowObjects является просто список этих объектов, я не думаю, что он действительно разговаривает с атрибутами этих объектов в этом списке. Но, я пробовал , если он есть (k == item.account1 для элемента в listOfSpreadsheetRows):, и это вообще не тянет.

Как получить доступ к учетной записи 1 каждого объекта, чтобы я мог соответствовать им по мере необходимости?

В конце концов, я должен иметь три объекта со следующей информацией:

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

ответ

0

Похоже, было бы легче перебрать строки объекты первой, а затем для каждого чека, если его account1 находится в dict:

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

OH MY GOODNESS это так глупо просто, почему я даже не подумал об этом! Моя герой, большое спасибо @BrenBarn! – user3097421

Смежные вопросы