我正在嘗試創建一個函式來將串列中的所有值加倍。但是,當我運行它時,我得到一個無限回圈。這是我的代碼:
def double_values_in_list ( ll ):
i = 0
while ( i < len(ll) ):
ll[i] = ll[i] * 2
print ( "ll[{}] = {}".format( i, ll[i] ) )
return ll
uj5u.com熱心網友回復:
您不會i在 while 回圈內的任何點遞增,因此您i將始終保持 0,因為您在開始時使用 0 對其進行了初始化,因此i將始終小于串列的長度,ll因此是無限回圈的長度。
考慮像這樣替換您的方法
def double_values_in_list ( ll ):
i = 0
while ( i < len(ll) ):
ll[i] = ll[i] * 2
print ( "ll[{}] = {}".format( i, ll[i] ) )
i = i 1
return ll
uj5u.com熱心網友回復:
因為您的 I 在此 while 回圈中實際上從未增加。如果你真的想這樣做,你可以將 ai = 1 添加到函式的末尾
def double_values_in_list ( ll ):
i = 0
while (i<len(ll) ):
ll[i] = ll[i] * 2
print ( "ll[{}] = {}".format( i, ll[i] ) )
i = 1
return ll
print(double_values_in_list([1, 2]))
但是,這是您不需要采取的許多額外步驟,您可以簡單地運行 pythonic for 回圈以使您自己更輕松
def double_values_in_list (ll):
return [x*2 for x in ll]
print(double_values_in_list([1, 2]))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/437415.html
