2012-03-24 65 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