Python 列表推导式、元组推导式、字典推导式和集合推导式是 Python 的高级语法,可以将一个可迭代对象快速转化为另一个可迭代对象,并且具有简洁、易读、高效的特点。
列表推导式
列表推导式是一种语法,允许根据已有列表快速构建另一个新的列表,语法如下:
[expression for item in iterable if condition]
其中,expression 表示新列表中的元素,item 表示从可迭代对象中取出的每一个元素,iterable 表示可迭代对象,condition 表示筛选条件,如果没有筛选条件可以省略。
示例一:将一个列表中的元素全部平方
a = [1, 2, 3, 4, 5]
b = [x ** 2 for x in a]
print(b) # 输出 [1, 4, 9, 16, 25]
示例二:将一个字符串列表转为大写并去掉空字符串
a = ['hello', '', 'world']
b = [s.upper() for s in a if s]
print(b) # 输出 ['HELLO', 'WORLD']
元组推导式
元组推导式是一个类似于列表推导式的语法,但产生的结果是一个元组,语法如下:
(expression for item in iterable if condition)
其中,expression 表示元组中的元素,item 表示从可迭代对象中取出的每一个元素,iterable 表示可迭代对象,condition 表示筛选条件,如果没有筛选条件可以省略。
示例一:将一个列表中的元素分别和其对应的下标组成元组
a = ['a', 'b', 'c']
b = tuple((i, x) for i, x in enumerate(a))
print(b) # 输出 ((0, 'a'), (1, 'b'), (2, 'c'))
示例二:将一个数字列表中的奇数和偶数组成元组
a = [1, 2, 3, 4, 5]
b = tuple((x, x % 2 == 0) for x in a)
print(b) # 输出 ((1, False), (2, True), (3, False), (4, True), (5, False))
字典推导式
字典推导式是一种语法,允许根据已有字典快速构建另一个新的字典,语法如下:
{key_expression: value_expression for item in iterable if condition}
其中,key_expression 表示新字典中的键,value_expression 表示新字典中的值,item 表示从可迭代对象中取出的每一个元素,iterable 表示可迭代对象,condition 表示筛选条件,如果没有筛选条件可以省略。
示例一:将一个字典中的键值对交换
a = {'a': 1, 'b': 2, 'c': 3}
b = {v: k for k, v in a.items()}
print(b) # 输出 {1: 'a', 2: 'b', 3: 'c'}
示例二:将一个列表中的元素作为键,将元素的长度作为值
a = ['apple', 'banana', 'cat']
b = {x: len(x) for x in a}
print(b) # 输出 {'apple': 5, 'banana': 6, 'cat': 3}
集合推导式
集合推导式是一种语法,允许根据已有序列快速构建另一个集合,语法如下:
{expression for item in iterable if condition}
其中,expression 表示集合中的元素,item 表示从可迭代对象中取出的每一个元素,iterable 表示可迭代对象,condition 表示筛选条件,如果没有筛选条件可以省略。
示例一:将一个列表中的元素去重
a = [1, 2, 3, 2, 4, 3]
b = {x for x in a}
print(b) # 输出 {1, 2, 3, 4}
示例二:将一个字符串中的单词组成集合
s = 'hello world hello python'
b = {x for x in s.split()}
print(b) # 输出 {'hello', 'world', 'python'}
以上就是 Python 列表推导式、元组推导式、字典推导式和集合推导式的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python列表推导式,元组推导式,字典推导式,集合推导式 - Python技术站