在Python编程中,for循环是一种常见的结构,用于遍历序列类型(如列表、元组、字典等)。for循环可以让我们不用每次都重复造轮子,可以提高工作效率。
但循环结构如果太复杂,也会降低程序的运行速度。在很多时候,我们只需使用一行代码即可完成for循环,我们一起看看吧!01、遍历列表并打印每个元素
普通的for循环:
numbers = [1, 2, 3, 4, 5]
for number in numbers:
print(number)
在这个例子中,我们创建了一个名为numbers的列表,然后使用for循环遍历列表中的每个元素,并使用print()函数将其打印出来。
一行代码的for循环:
numbers = [1, 2, 3, 4, 5]
[print(number) for number in numbers]
这里我们用列表推导式来实现相同的功能。注意,这种方式实际上是创建了一个新的列表,其中的元素是print(number)的返回值。
02、计算列表中每个数字的平方
普通的for循环:
numbers = [1, 2, 3, 4, 5]
squares = []
for number in numbers:
squares.append(number ** 2)
print(squares)
在这个例子中,我们通过两行代码的for循环逐个遍历numbers列表中的每个数字,计算平方,并保存在squares列表中。
一行代码的for循环:
numbers = [1, 2, 3, 4, 5]
squares = [number ** 2 for number in numbers]
print(squares)
这次我们使用列表推导式来创建列表squares,它包含了numbers列表中每个元素的平方。
03、从列表中筛选出符合条件的元素
普通的for循环:
numbers = [1, 2, 3, 4, 5]
even_numbers = []
for number in numbers:
if number % 2 == 0:
even_numbers.append(number)
print(even_numbers)
在这个例子中,我们试图得到numbers列表中的所有偶数。我们逐个遍历numbers列表中的每个元素,如果元素符合第4行代码的条件,则存入even_numbers列表中。
一行代码的for循环:
numbers = [1, 2, 3, 4, 5]
even_numbers = [number for number in numbers if number % 2 == 0]
print(even_numbers)
使用列表推导式,我们可以在一行代码中完成筛选工作。这里的if语句用于判断每个元素是否符合条件。如果元素符合if后面的条件,则放入even_numbers列表中;否则将会跳过该元素。
04、循环遍历与字符串识别
假设我们需要从一堆账户名中,挑选出用邮箱地址命名的账户名并打印出来。
普通的for循环:
account_names = ['user@example.com', 'admin@example.com', 'service@example.com', 'name_website', 'example2024']
email_accounts = []
for name in account_names:
if '@' in name and '.' in name.split('@')[-1]:
email_accounts.append(name)
print(email_accounts)
在这个例子中,我们有一个账户名列表account_names,我们想要挑选出格式符合电子邮箱地址的账户名。我们检查每个账户名是否包含@符号,并且在@后面有.符号,这是电子邮箱地址的基本格式。
程序输出结果如下:
一行代码的for循环:
account_names = ['user@example.com', 'admin@example.com', 'service@example.com', 'name_website', 'example2024']
email_accounts = [name for name in account_names if '@' in name and '.' in name.split('@')[-1]]
print(email_accounts)
第1行代码会循环遍历account_names列表中的每个元素,只有当元素包含@符号,并且在@后面有.符号时,才会被添加到email_accounts列表中。
程序输出结果如下:
可以看到,一行代码的for循环的输出结果与普通的for循环完全一致,代码更加简洁高效。
一行代码的for循环(列表推导式)在处理简单的迭代任务时非常有用,它可以使代码更加简洁。
当然,有时候为了保证代码的可读性和维护性,使用传统的多行for循环可能是更好的选择。对于初学者来说,理解两种形式的for循环都是很有必要的。
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/12192/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取