Python3去除列表中小于0的数代码出现问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3去除列表中小于0的数代码出现问题相关的知识,希望对你有一定的参考价值。

代码:grade = list(map(int,input().split()))for j in grade: if j < 0 or j > 50: grade.remove(j)print(grade)为什么这个-25还在???

你犯的错误是在遍历一个列表的同时又去修改它的长度。这会导致下标错乱。
正确的做法是将满足条件的数输出到一个新列表中,然后令引用指向新列表。
new_grade = []
for j in grade:
if 0 <= j <= 50:
new_grade.append(j)
grade = new_grade
以上的过程也可以直接用filter函数实现:
grade=list(filter(lambda x: 0<=x<=50, grade))
参考技术A 因为是可变对象,你一边遍历,一边删除,肯定有问题,应
for j in grade[:]: # 创建它的一个副本
if ... :
grade.remove(j)

python编写一个程序求出1到100之间所有末位数的乘积小于数本身的所有的数

代码是多少

参考技术A 其实我是看不懂你题目什么意思,而不是代码怎么写,1-100所有末尾数乘积不是0吗,然后小于本身,是不是你题目写错了是不是1-100所有数的各个位数的乘积小于本身的数,如果是按照我理解的代码就这样写
num_lis = [ num for num in range(1,101)] #[1,2,3,.....,100]
#乘积的列表
num_2 = []
#小于数本身的的列表
num_3 = []
for num in num_lis:
(缩进)num = 1
(缩进)for str_num in str(num):
(缩进)(缩进)num *= int(str_num)
(缩进)num_2.append(num)
for a,b in zip(num_lis,num_2):
(缩进)if b<a :num_3.append(a)
print(num_3)
参考技术B

for i in range(1,101):
if int(str(i)[-1])*int(str(i)[-1]) < i:
print(i,end=' ')  

双是你,又来了。

参考技术C 题目表达能再清楚点吗?

以上是关于Python3去除列表中小于0的数代码出现问题的主要内容,如果未能解决你的问题,请参考以下文章

Py中去除列表中小于某个数的值

校招 刷题

使用python3.7进行慢列表解析以去除重复项

python 集合的使用

python编写一个程序求出1到100之间所有末位数的乘积小于数本身的所有的数

Python3 找素数