2012-03-24 51 views
0

我在寫一個函數,它接受一個參數。從這個論點來看,我想將它與字典的一組鍵進行比較,並返回任何匹配的鍵的值。到目前爲止,我只能返回鍵的參數匹配。使用python字典

def func(str): 
    a = [] 
    b = {'a':'b','c':'d','e':'f'} 
    for i in str: 
    if i in b.keys(): 
     a.append(i) 
    return a 

輸出樣本:

FUNC( 'abcdefghiabcdefghi')

[ '一個', 'C', 'E', 'A', 'C', 'E']

求購輸出:

[ 'b', 'd', 'F', 'b', 'd', 'F']

回答

2

最好不要用str作爲變量名。我想你的功能可以更簡單地寫成這樣

def func(mystr): 
    b = {'a':'b','c':'d','e':'f'} 
    return [b[k] for k in mystr if k in b] 

如果你不想使用列表理解,那麼你可以解決它像這樣

def func(mystr): 
    a = [] 
    b = {'a':'b','c':'d','e':'f'} 
    for i in mystr: 
    if i in b:   # i in b works the same as i in b.keys() 
     a.append(b[i])  # look up the key(i) in the dictionary(b) here 
    return a 
+0

謝謝你,在哪裏參考儘管在回報中使用值?它工作正常,我只是想了解。編輯:哦,這是我的愚蠢,只是通過調用它的鍵返回值。 – tijko 2012-03-24 06:59:27

+1

您可以使用該鍵作爲索引來獲取該值。 **對於**來說就是那種**。 – 2012-03-24 07:07:04

+0

嘿卡爾,在我編輯我之前我甚至沒有看到你的評論。在我發佈的示例函數中,我一直在想,爲了查找參數並返回鍵或值,我必須使用.values()或.keys()方法。感謝您的迴應。 – tijko 2012-03-24 07:22:36