Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从列表中删除可被5整除的数字的Python程序返回错误的值_Python_List - Fatal编程技术网

从列表中删除可被5整除的数字的Python程序返回错误的值

从列表中删除可被5整除的数字的Python程序返回错误的值,python,list,Python,List,我想从列表中删除可被5整除的数字,但当可被5整除的值彼此相邻时,它不会删除第二个。有人能告诉我我做错了什么吗?代码如下: my_list = [] n = int(input("Size of list: ")) for i in range(n): my_list.append(int(input("Enter value: "))) for i in my_list: if i % 5 != 0: continue

我想从列表中删除可被5整除的数字,但当可被5整除的值彼此相邻时,它不会删除第二个。有人能告诉我我做错了什么吗?代码如下:

my_list = []
n = int(input("Size of list: "))

for i in range(n):
    my_list.append(int(input("Enter value: ")))

for i in my_list:
    if i % 5 != 0:
        continue
    else: 
        my_list.remove(i)


print(my_list)

我将建立一个具有良好价值观的新列表:

new_list=[如果项目%5!=0,则我的_列表中的项目对应项目]

您正在将其添加到同一列表中。 比如: 如果数组是
4,5,10,6
然后首先
a[1]
5
从列表中删除后
for循环转到
a[2]
,它现在是
6
,因为新数组是
4,10,6

,只需循环查看列表的副本,这样删除项就不会影响该过程。修改后的行带有注释:

my_list = []
n = int(input("Size of list: "))

for i in range(n):
    my_list.append(int(input("Enter value: ")))

my_list2=my_list.copy() #create a copy of my_list

for i in my_list2: #loop through my_list2
    if i % 5 != 0:
        continue
    else: 
        my_list.remove(i)


print(my_list)

删除i=5处的图元时,其余图元将向左移动一个位置。因此,位置6处的下一个元素移动到当前位置5,在i增加1后,跳过一个数字

使用filter函数创建一个新列表,其中只包含满足条件的数字

my_list = []
n = int(input("Size of list: "))

for i in range(n):
    my_list.append(int(input("Enter value: ")))

filtered_list = list(filter(lambda x: x % 5 == 0, my_list))

print(filtered_list)

在迭代列表时修改列表是有问题的。最简单的解决办法是列一个新的清单。