【发布时间】:2019-06-24 13:31:02
【问题描述】:
当我尝试 for 循环从列表中删除所有 a 时,这是我的代码:
list5 = ["a","b","a","b","a","b","c"]
def remove_values_from_list(_list, val):
for val in _list:
_list.remove(val)
remove_values_from_list(list5, "a")
print(list5)
它返回:
["b","b","b"]
当我使用 while 而不是 for 它返回时:
list5 = ["a","b","a","b","a","b","c"]
def remove_values_from_list(_list, val):
while val in _list:
_list.remove(val)
remove_values_from_list(list5, "a")
print(list5)
["b","b","b","c"]
有人能解释一下为什么 for 循环不返回最后一个 c 吗?
【问题讨论】:
-
你的
while loop在哪里? -
@user5173426 在同一代码中更改 while 而不是 for。
-
@BarotShalin 在您的问题中也包括该部分。
-
为什么你的 for 循环应该返回
["b","b","b"]而它实际上应该返回['b', 'b', 'b', 'c']
标签: python list for-loop data-structures while-loop