请问这个报错原因是为啥呀
list (filter(lambdax: x%2,range(10)))在IDLE里面运行,总是提醒冒号那错误
已经确认是用的英文输入格式
菜鸟寻求帮助
另外,range(10),最后运算出来的结果为什么是1.3.5.7.9啊?
为啥不是1.3.5 呢?
range(10)难道不是用1-10的数去除以2吗? 本帖最后由 Daniel_Zhang 于 2021-1-17 17:10 编辑
lambda x 不是 lambdax
建议楼主重新学习一下 filter 和 %
filter是当满足条件为True时被扔出来
x%2表示 x 除以 2 后的余数
比如 7 % 2 = 1
1 为 True, 0 为 False
所以,扔出来的当然是 1 3 5 7 9
另外,你可以尝试一下 list(range(10))
或者
for each in range(10):
print(each)
看看出来的是 1-10 还是 0-9 %: 求于
/ : 除以
本帖最后由 昨非 于 2021-1-17 17:12 编辑
首先,你的lambda后面少了个空格
其次:
filter会过滤掉其参数内不是true(1)的部分,
在filter内是一个lambda表达式
它的值是range(10)内的x%2
【x%2并不是除以二,而是对二取余数,也就是除以二的余数】
解和filter的性质,这一语句就会过滤掉range(10)中,取余二为0的部分(也就是偶数)
剩下的就是0到9中的奇数部分,转化为列表
页:
[1]