print(lst2) 没有打印lst2而是输出<filter object at 000000199FD6EA5C0>为什么
时间: 2023-12-27 22:02:27 浏览: 68
这是因为`filter()`函数返回的是一个迭代器(iterator),而不是一个列表(list)。在Python中,迭代器可以被for循环遍历,但不能直接被打印输出。
如果你希望将迭代器转换为列表并打印出来,可以使用`list()`函数来实现,如下所示:
```
lst2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lst2 = filter(lambda x : x % 2 == 0, lst2)
print(list(lst2))
```
这样就能将`filter()`函数返回的迭代器转换为列表并打印出来了。
相关问题
print(list(filter( lambda x: x%2=0,lst))
该行代码有语法错误,应该是:
```python
print(list(filter(lambda x: x % 2 == 0, lst)))
```
这行代码的作用是从列表 `lst` 中筛选出所有的偶数,并以列表形式输出。其中 `lambda x: x % 2 == 0` 是一个匿名函数,用于判断一个数是否为偶数。`filter()` 函数则是用于过滤序列的函数,它的第一个参数是一个函数,用于对序列进行过滤,第二个参数是一个序列。最后将过滤后的结果转换成列表并输出。
运行以下程序,输出结果为: lst1=[1,2,3,4,5] lst2=[ i>3 for i in lst1] print(lst2[2])
输出结果为 True。
解析:
- lst1=[1,2,3,4,5] 定义了一个包含 1,2,3,4,5 的列表 lst1。
- lst2=[ i>3 for i in lst1] 定义了一个列表 lst2,通过列表推导式生成了一个布尔值的列表,即 lst2=[False,False,False,True,True]。
- print(lst2[2]) 输出 lst2 列表中下标为 2 的元素,即 False。