2016-05-14 36 views
-2

我不明白为什么这个函数 - for循环,只返回一个字典中的一个值。当被调用时:使用for循环的函数被调用时,它只会从dict返回值。

my_dict = {"key1": 2, "key2": 3, "key3": 4} 


def fun(): 
    for x in my_dict: 
     return my_dict[x] 

var = fun() 
print var 

如何让它返回循环产生的所有值?我知道有更聪明的方法,但对于Python来说,它是非常新的,并试图了解它的功能。

回答

1

一旦你return从函数的值,函数中断,所以循环中断。

可以将所有值附加到一个列表,然后返回一个列表:

def fun(): 
    L = [] 
    for x in my_dict: 
     L.append(my_dict[x]) 
    return L 

var = fun() 
print var 

这也可以用一个列表理解来完成:

def fun(): 
    return [my_dict[x] for x in my_dict] 
+0

THX。现在我明白了一点:-) – CasperTN

+0

我知道这是一个愚蠢的问题,但我对编程和Python很陌生,你的回答让我更多地理解函数的工作原理。 – CasperTN