有关python3 列表remove方法的讨论,以及牛客网题解
![在这里插入图片描述](https://img-blog.csdnimg.cn/221fb036387745dd816550e5a3bacecc.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfMzkzNzE5MDY=,size_20,color_FFFFFF,t_70,g_se,x_16)
解法1
n = int(input())
l = list(map(int,input().split(' ')))
m = int(input())
b = []
for i in l:
if i != m:
b.append(i)
print(len(b))
for j in b:
print(j, end=' ')
解法2
n = int(input())
l = list(map(int,input().split(' ')))
m = int(input())
for i in l:
if i == m:
l.remove(i)
print(len(l))
for j in l:
print(j, end=' ')
解法1 可以完全ac,但是解法2 总是多一个元素,个人感觉解法二的思路没有问题,请大佬指教。
输入为
10
1 1 2 2 2 3 4 5 6 7
2
输出应该为
7
1 1 3 4 5 6 7
但是输出为
8
1 1 2 3 4 5 6 7
不清楚这是什么原因,请有懂python3 进行指教