[英]Why is my "while" function causing an infinite loop?
我正在嘗試創建一個 function 來將列表中的所有值加倍。 但是,當我運行它時,我得到了一個無限循環。 這是我的代碼:
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
您在 while 循環內的任何時候都沒有增加i
,因此您的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
因為你的 I 在這個 while 循環中實際上從未增加過。 如果你真的想這樣做,你可以將 ai += 1 添加到 function 的末尾
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]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.