您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页for循环与列表推导式结合技

for循环与列表推导式结合技

来源:华佗小知识

文末附精品编程资料~

大家好!今天我们要聊一聊 Python 中非常实用的一个话题——如何将 for 循环与列表推导式结合起来使用。这不仅能够简化你的代码,还能让你的程序更加高效。

1. 初识 for 循环

首先,让我们回顾一下基本的 for 循环。for 循环可以遍历任何序列的项目,如列表或字符串。

# 示例:打印列表中的每个元素
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

输出:

apple
banana
cherry

2. 列表推导式入门

列表推导式是一种快速创建新列表的方法,它允许你在一行代码中实现原本需要多行代码才能完成的功能。

# 示例:生成一个包含 1 到 10 的平方的列表
squares = [x**2 for x in range(1, 11)]
print(squares)

输出:

[1, 4, 9, 16, 25, 36, 49, , 81, 100]

3. 结合 for 循环与列表推导式

当我们将两者结合起来时,可以实现更复杂的逻辑,同时保持代码简洁。

# 示例:筛选出偶数并计算其平方
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_squares = [x**2 for x in numbers if x % 2 == 0]
print(even_squares)

输出:

[4, 16, 36, , 100]

4. 多重循环与条件语句

列表推导式还可以支持多重循环以及多个条件判断,让你的代码更加灵活。

# 示例:生成一个包含两个列表中相同元素的列表
list_a = [1, 2, 3, 4, 5]
list_b = [2, 4, 6, 8, 10]
common_elements = [x for x in list_a for y in list_b if x == y]
print(common_elements)

输出:

[2, 4]

5. 使用技巧与注意事项

  • 技巧1:尽量使用列表推导式代替传统的 for 循环,以提高代码的可读性和执行效率。

  • 技巧2:当逻辑过于复杂时,可以考虑拆分成多个步骤,避免单个列表推导式过长难以阅读。

  • 注意事项:虽然列表推导式很强大,但过度使用可能会导致代码难以理解和维护,因此要适度使用。

6. 嵌套列表推导式

嵌套列表推导式可以在一个列表推导式内部再嵌套另一个列表推导式,从而处理更复杂的逻辑。

# 示例:生成一个二维列表
matrix = [[i * j for i in range(1, 4)] for j in range(1, 4)]
print(matrix)

输出:

[[1, 2, 3], [2, 4, 6], [3, 6, 9]]

7. 使用函数配合列表推导式

列表推导式可以与自定义函数结合使用,进一步增强其功能。

def square(x):
    """返回 x 的平方"""
    return x ** 2

# 示例:使用自定义函数生成平方列表
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
squares = [square(x) for x in numbers]
print(squares)

输出:

[1, 4, 9, 16, 25, 36, 49, , 81, 100]

8. 列表推导式中的条件组合

列表推导式可以包含多个条件,通过逻辑运算符 andor 来组合不同的条件。

# 示例:筛选出大于 3 且小于 7 的数字
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filtered_numbers = [x for x in numbers if x > 3 and x < 7]
print(filtered_numbers)

输出:

[4, 5, 6]

9. 列表推导式中的 else 子句

列表推导式还可以包含 else 子句,用于处理不同的情况。

# 示例:根据数字的奇偶性生成不同的列表
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = [x if x % 2 == 0 else -x for x in numbers]
print(result)

输出:

[-1, 2, -3, 4, -5, 6, -7, 8, -9, 10]

10. 实战案例:统计单词出现次数

假设我们有一个文本文件,需要统计其中每个单词出现的次数。我们可以使用列表推导式来简化这个任务。

# 读取文本文件
with open('example.txt', 'r') as file:
    text = file.read()

# 分割成单词列表
words = text.split()

# 统计每个单词出现的次数
word_counts = {word: words.count(word) for word in set(words)}
print(word_counts)

假设 example.txt 文件的内容如下:

hello world hello python programming world

输出:

{'hello': 2, 'world': 2, 'python': 1, 'programming': 1}

好了,今天的分享就到这里了,我们下期见。如果本文对你有帮助,请动动你可爱的小手指点赞、收藏吧!

文末福利

最后,如果你对Python感兴趣的话,可以试试我整理的这一份全套的Python学习资料,【】免费领取!

① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,学习不再是只会理论
④ 华为出品独家Python漫画教程,手机也能学习

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务