推导式定义
推导式 comprehensions(又称解析式),是 Python 的一种独有特性。推导式最主要的特点就是可以从一个数据序列构建另一个新的数据序列。在Python 中目前常用的推导式有列表推导式、字典推导式和集合推导式。
列表推导式(List Comprehensions)
列表推导式是我们最常使用的,因为列表是我们最常使用的,其基本的语法示意如下:
- [表达式 for 变量 in 列表]
- [表达式 for 变量 in 列表 if 条件]
# 创建一个包含平方数的列表
squares = [x**2 for x in range(10)]
# 可以添加条件筛选
even_squares = [x**2 for x in range(10) if x % 2 == 0]
集合推导式(Set Comprehensions)
集合我们都很了解,就是一个没有重复元素的汇集,跟列表和字典推导式类似,其基本的语法形式可以表示为:
{ 表达式for 项in 序列if 条件}
我们先看看集合“{}”,因为其是不重复的,因此如果有语句:print({1,2,3,4,4,5})会输出:1,2,3,4,5,重复的4将会被删除。
# 创建一个包含平方数的集合
squares_set = {x**2 for x in range(10)}
# 可以添加条件筛选
even_squares_set = {x**2 for x in range(10) if x % 2 == 0}
字典推导式(Dictionary Comprehensions)
学习了列表推导式以后,学习字典推导式就没什么困难了,字典推导式语法差不多,只不过我们使用”{}”产生的是字典而已,唯一要注意的就是在字典中有键和值两个关键的属性,仿似列表推导式,那么其基本的语法可以被写作这样:
{ 键:值 for 键,值 in 数据结构}
{ 键:值 for 键 in 数据结构1 for 值 in 数据结构2 }
# 创建一个包含数字和其平方的字典
square_dict = {x: x**2 for x in range(5)}
# 可以添加条件筛选
even_square_dict = {x: x**2 for x in range(10) if x % 2 == 0}
标签:10,推导,python,列表,拿捏,range,squares,字典
From: https://blog.csdn.net/2302_77361311/article/details/140778914