2016-05-14 67 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