2013-10-15 48 views
-1

我有以下的代碼,獲取字符串列表從用戶的raw_input:如何查找與列表中的多個詞典詞條

def Lookup(Dict_list): 
    print 'Please enter one alias per line. Leave blank when finished.' 
    user_alias = [alias for alias in iter (raw_input, '') ] 
    print user_alias 
    for row in Dict_list: 

     #print "row test" 
     #print row 
     if user_alias in row.values(): 
      print row 


    for row in Dict_list: 
     if user_alias[0] == row['_cn6ca']: 
       email1 = row['_chk2m'] 
       print email1 
       return email1 
      if user_alias[1] == row['_cn6ca']: 
       email2 = row['_chk2m'] 
       print email2 
       return email2 
      if user_alias[2] == row['_cn6ca']: 
       email3 = row['_chk2m'] 
       print email3 
       return email3 

Lookup(Dict_list) 

我如何改變,如果user_alias ==行['_ cn6ca ']:行,以便它將查找並返回每個用戶輸入的用戶別名的電子郵件地址? (這些鍵將保持不變)

我的目標是要存儲這些擡頭電子郵件,在.csv


下面是在終端產生後粘貼:

請輸入每行一個別名。完成後留空。 PaulDu Jeanell Twanna JaneyD 夏洛 Janessa

[ 'PaulDu', 'Jeanell', 'Twanna', 'JaneyD', '夏洛', 'Janessa'] 註銷

[工藝完成]

+4

你期待SO寫的每一件這樣的嗎? –

+1

當'user_alias'是一個字符串列表時,你期望'row.values()中的user_alias要做什麼?你只是把隨機代碼扔在一起,希望它能做些有用的事情? – abarnert

+0

我希望在代碼底部實現類似3重複的if語句,但是以循環形式。我只學習了大約3周的編程語言,所以我明白我的問題可能會讓你失望,但這不是我的意圖。 – gigawatts

回答

1

我已經剝去了一些細節,以便如果行(這是一個字典型)有用戶作爲一個如果它的值,那麼我們找到他們的電子郵件ID。

Dict_list = [{'nokey':'someval'},{'_cn6ca':'Twanna', '_chk2m': "[email protected]"},{'_cn6ca':'Jeanell', '_chk2m': "[email protected]"}] 

    #print 'Please enter one alias per line. Leave blank when finished.' 
    #user_alias = [alias for alias in iter (raw_input, '') ] 
    user_alias = ['PaulDu', 'Jeanell', 'Twanna', 'JaneyD', 'Charlot','Janessa'] 
    print user_alias 
    for user in user_alias: 
     for row in Dict_list:  
      if user in row.values(): 
       print row 

    for user in user_alias: 
     for row in Dict_list: 
      if row.has_key('_cn6ca') and row.has_key('_chk2m'): 
       if user == row['_cn6ca']: 
        email = row['_chk2m'] 
        print email 

輸出:

['PaulDu', 'Jeanell', 'Twanna', 'JaneyD', 'Charlot', 'Janessa'] 
    {'_cn6ca': 'Jeanell', '_chk2m': '[email protected]'} 
    {'_cn6ca': 'Twanna', '_chk2m': '[email protected]'} 
    [email protected] 
    [email protected] 
+0

爲了清楚起見,成功查找的電子郵件作爲一個變量存儲在名爲「email」的列表中,是否正確? – gigawatts

+0

嗯,因爲你必須改變一下代碼。在for循環之前初始化「email = []」。然後在循環中寫下「email.append(row ['_ chk2m'])」。這將在操作結束時將所有存在的電子郵件轉換爲* list *類型的變量。 – Theja

相關問題