您好,欢迎来到刀刀网。
搜索
您的当前位置:首页python推导式详解

python推导式详解

来源:刀刀网


在Python中,推导式(Comprehensions)是一种优雅且高效的方式来创建数据结构,如列表、字典和集合。它们可以使代码更加紧凑和可读,同时提高了编写代码的效率。

1. 列表推导式(List Comprehensions)

列表推导式是Python中最常见的推导式形式之一,它允许我们在一行内构建新的列表。基本语法如下:

# 基本形式

new_list = [expression for item in iterable if condition]
  • expression:对item执行的操作或表达式。
  • item:迭代变量,从iterable中逐个取出的元素。
  • iterable:可迭代的对象,如列表、元组、字符串等。
  • condition(可选):对item进行过滤的条件。



    示例代码:
# 创建一个包含平方数的列表

squares = [x**2 for x in range(10)]

print(squares)  # 输出: [0, 1, 4, 9, 16, 25, 36, 49, , 81]


# 添加条件,过滤出偶数的平方数

even_squares = [x**2 for x in range(10) if x % 2 == 0]

print(even_squares)  # 输出: [0, 4, 16, 36, ]
2. 字典推导式(Dictionary Comprehensions)

字典推导式允许我们以类似的方式创建新的字典。语法如下:


# 基本形式

new_dict = {key_expression: value_expression for item in iterable if condition}
  • key_expression:用于创建字典键的表达式。
  • value_expression:用于创建字典值的表达式。
  • 其他部分与列表推导式类似。

示例代码:

# 创建一个字典,将字符串列表的元素作为键,长度作为值

word_list = ['hello', 'world', 'python', 'is', 'awesome']

word_dict = {word: len(word) for word in word_list}

print(word_dict)  # 输出: {'hello': 5, 'world': 5, 'python': 6, 'is': 2, 'awesome': 7}

3. 集合推导式(Set Comprehensions)

集合推导式与列表推导式非常类似,只是它们创建一个集合而不是一个列表。语法如下:

# 基本形式

new_set = {expression for item in iterable if condition}

示例代码:

# 创建一个包含0到9之间偶数的集合

even_numbers = {x for x in range(10) if x % 2 == 0}

print(even_numbers)  # 输出: {0, 2, 4, 6, 8}
4. 生成器表达式(Generator Expressions)

生成器表达式是一种创建生成器的方式,它们与列表推导式非常相似,但是使用圆括号而不是方括号。生成器表达式是惰性求值的,只在需要时才生成值,节省内存空间。


# 基本形式

gen = (expression for item in iterable if condition)

示例代码:

# 生成一个生成器,计算0到9之间偶数的平方数

even_squares_gen = (x**2 for x in range(10) if x % 2 == 0)

print(list(even_squares_gen))  # 输出: [0, 4, 16, 36, ]

总结

通过本文的介绍,你应该已经掌握了Python中四种推导式的基本用法和语法。推导式不仅能够帮助你写出更为简洁和高效的代码,而且在处理数据时也能提供更大的灵活性和表达能力。

希望本文能对你学习和使用Python推导式有所帮助!如果有任何问题或意见,请随时在评论区留言。

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

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

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

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