可以使用for循环通过遍历list或者其他可迭代对象进行迭代操作,但是循环语法有时不够简洁,可以使用Python的推导式实现同样的操作。
Python中的推导式是一种简洁、快速、简单的利用迭代器快速构建一个列表、字典或集合的方法,Python中有列表推导式,字典推导式和集合推导式三种。
列表推导式
列表推导式使用简单,使用一行代码就能快速构建一个列表:
new_list = [表达式 for 变量 in 可迭代对象 if 条件]
表达式
:循环可能执行的操作;变量
:在循环过程中用来实时迭代对象的某个元素;可迭代对象
:列表、元组、集合、字符串或其他可迭代的对象;if条件
:一个或多个判断语句,可留空。
示例一:将数字列表中的每个数平方并存储到新列表中
origin_list = [1, 2, 3, 4, 5]
new_list = [x ** 2 for x in origin_list]
print(new_list) # [1, 4, 9, 16, 25]
示例二:筛选出数字列表中大于3的数并存储到新列表中
origin_list = [1, 2, 3, 4, 5]
new_list = [x for x in origin_list if x > 3]
print(new_list) # [4, 5]
字典推导式
除了使用列表推导式,还可以使用字典推导式快速构建一个字典,使用一行代码就能快速构建一个字典:
new_dict = {key: value for key, value in 可迭代对象 if 条件}
key
:在迭代对象中的元素,用于键;value
:在迭代对象中的元素,用于值;可迭代对象
:列表、元组、集合、字符串或其他可迭代的对象;if条件
:一个或多个判断语句,可留空。
示例三:将列表中的元素映射为字典的键值对
origin_list = [("name", "Tom"), ("age", 18), ("gender", "male")]
new_dict = dict(origin_list)
print(new_dict) # {'name': 'Tom', 'age': 18, 'gender': 'male'}
示例四:将字典中的值与其对应的键进行交换
origin_dict = {"name": "Tom", "age": 18, "gender": "male"}
new_dict = {value: key for key, value in origin_dict.items()}
print(new_dict) # {'Tom': 'name', 18: 'age', 'male': 'gender'}
集合推导式
使用集合推导式可以快速得到一个集合,与列表推导式和字典推导式相似,使用一行代码就能快速构建一个集合:
new_set = {元素 for 变量 in 可迭代对象 if 条件}
元素
:由可迭代对象变量指向的元素;变量
:在循环过程中用来实时迭代对象的某个元素;可迭代对象
:列表、元组、集合、字符串或其他可迭代的对象;if条件
:一个或多个判断语句,可留空。
示例五:将列表中的元素去重存储到一个集合中
origin_list = [1, 2, 3, 3, 4, 4, 5, 5]
new_set = {x for x in origin_list}
print(new_set) # {1, 2, 3, 4, 5}
示例六:将一个字符串中的元素去重存储到一个集合中
origin_str = "hello, world"
new_set = {char for char in origin_str if char != " "}
print(new_set) # {'w', 'e', 'h', 'r', 'l', 'd', 'o', ','}
以上就是从for循环延申到推导式的具体使用攻略,包含列表推导式、字典推导式和集合推导式三种推导式的详细说明以及示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python中从for循环延申到推导式的具体使用 - Python技术站