python - 打印给定列表中的偶数
问题描述
我从 python 开始并练习代码以从列表中打印偶数。
样品清单:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
代码:
def p_even(lst):
for num in lst:
if num %2 == 0:
return num
我期待列表中的偶数 [2,4,6,8],但只是给我数字 2。
解决方案
是的,该代码将返回它找到的第一个偶数,当它完成时停止处理列表。
如果你想要所有的偶数,你可以使用(a):
def p_even(lst):
# _____Construct new list_____
# / \
return [x for x in lst if x % 2 == 0]
# \____________/ \___________/
# from these elements that meet this condition
(注释仅用于解释,在您编写的任何实际代码中可能不需要它们)。
这在 Python 中称为列表推导,是一种通过过滤某些元素从列表中创建另一个列表的强大方法(在这种情况下)。
要打印元素,您可以只打印返回的列表本身(下面的第一行)或打印每个元素(for
下面的循环):
print(p_even(range(20))
for itm in p_even(range(20)):
print(itm)
(a)您可以为此使用显式循环,例如:
def p_even(lst):
even_lst = []
for itm in lst:
if itm % 2 == 0:
even_lst.append(itm)
但它并没有真正被认为是“pythonic”。Python 提供了非常有表现力(和简洁)的方法来执行这种操作,并且在我看来,您最好学习它们,因为它们将使您的代码更具可读性和易于维护。
推荐阅读
- java - 如果超类具有有界泛型,具体类的泛型应该是什么
- java - 识别黑莓手机
- python - PySpark - 通过函数 .to_date() 和 .csv() 模块以不同方式导入的日期 0000.00.00
- sql - oracle sql列值从..到
- wordpress - elementor插件右空间
- c# - 设置 SelectList 选项标签的值
- wso2 - 如何在服务器上实现 wso2?
- c# - 当 IMG 图像不存在时,C# WebBrowser.Print() 不打印特定的 HTML 文件
- openiddict - 如何在 EF Core 中为 Openiddict-core 表设置默认方案
- c# - 多个按钮不同的属性循环