2016-05-14 8 views
-2

私はこの関数がforループを使って、dictから1つの値しか返さない理由を理解していません。呼び出されたとき: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にはとても新しく、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