2016-03-23 4 views
0

私はいくつかのステートメントが必要な理由と戻って他の理由を理解しようとしていますか?以下のように、私はこれを書いて、l1.append(val)は返りを必要としませんが、例えばl1 [val]はしますか?いくつかの関数はPythonではなく戻り値を取るのですか?

変数にのみ依存していますか?

L = [1,3,5,7,9,11, 2] 

print 'Original List =', L 
def change_list(l1, val, decision): 
    if decision == 'append': 
     return l1[val] 
    elif decision == 'ret': 
     l1.append(val) 
    elif decision == 'instance': 
     return l1.count(val) 
    elif decision == 'sort': 
     l1.sort() 
    return l1 
res=change_list(L, 2, 'append') 
print 'Output =', res 

ただし、次のように変更した場合(返品を取り除いた場合)、破損します。 WHはこれが起こる条件のいくつかは、仕事への復帰を必要とする与えられ、いくつかは?:

L = [1,3,5,7,9,11、2]

print 'Original List =', L 
def change_list(l1, val, decision): 
    if decision == 'append': 
     l1[val] 
    elif decision == 'ret': 
     l1.append(val) 
    elif decision == 'instance': 
     return l1.count(val) 
    elif decision == 'sort': 
     l1.sort() 
    return l1 
res=change_list(L, 2, 'append') 
print 'Output =', res 
+0

このリンクはあなたの質問に答える必要があります: http://stackoverflow.com/questions/15300550/python-return-return-none-and-no-return-at-all – Hektor

+0

目的、あなたはそれで何をするつもり – haifzhan

+0

それは返品を必要としないことを意味しますか?あなたの 'decision == 'ret''条件が満たされれば、あなたはliに追加していて、次に' li'を返しています。だから私はあなたがあなたの結論をどこから引き出しているのかわかりません。 – idjaw

答えて

0

理由はないんこれは、元のオブジェクトに影響するのはl1.append(val)です。のように、.append(val)を呼び出すと、change_list関数に渡した配列に行き、元の配列Lになります。ここでは、l1[val]は元のLに値を求めるだけです。返す必要があります