在刷python相关题目时遇到问题,代码如下:
"""
取出列表内的偶数
"""
list_old = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# list_new = []
def list_while():
"""
通过while循环取出列表中的偶数
:return: 无返回值
"""
list_new = []
index = 0
while index < len(list_old):
if list_old[index] % 2 == 0:
a = list_old.pop(index)
list_new.append(a)
index += 1
continue
else:
index += 1
continue
print(f"通过while循环,取出偶数后新列表为{list_new}")
def list_for():
"""
通过for循环取出列表中的偶数
:return: 无返回值
"""
list_new = []
for abc in list_old:
if list_old[abc] % 2 == 0:
a = list_old.pop(abc)
list_new.append(a)
# else:
# print(f"不为偶数")
print(f"通过for循环,取出偶数后新列表为{list_new}")
# list_while()
list_for()
错误如下:
Traceback (most recent call last):
File "D:\lean_new\exercise20.py", line 43, in <module>
list_for()
File "D:\lean_new\exercise20.py", line 34, in list_for
if list_old[abc] % 2 == 0:
IndexError: list index out of range
通过debug可知,for循环的函数list_new在添加了2,6,8(且取不到4)之后出现错误。while循环的函数可正常运行,且添加正确。
现在我的需求是通过for循环正常把偶数拿出来放到list_new中去.