系列文章目录
一、三元表达式
三元表达式是编程语言中的一种语法,可以使一些逻辑简单的代码写起来更加简短:
-
格式:
条件成立时的操作 if 判断条件 else 不成立时的操作
-
举例:
比如,比较两个数的大小,并返回二者中更大的值:
x, y = 5, 3 res = x if x > y else y print(res) # 打印:5
二、列表生成式
列表生成式可以帮助我们用很简短的代码,创建出一个列表。
-
格式:
变量 = [有返回值的表达式 for 元素 in 容器类型的数据]
也可以和if合用,进行条件判断:
变量 = [有返回值的表达式(条件成立时) for 元素 in 容器类型 if 条件判断]
-
举例:
从列表中取出偶数元素,组成一个新列表:
l = [1, 2, 3, 4, 5, 6, 7, 8] new_l = [i for i in l if i%2==0] print(new_l) # 打印:[2, 4, 6, 8]
三、其他生成式:
生成式的语法也可以用在其他容器类型上,形成其他的生成式。
-
集合表达式:
l = [1, 2, 3, 4, 5, 6, 7, 8] new_l = {i for i in l if i%2==0} # 注意外层括号修改为集合类型的花括号 print(new_l) # 打印:{8, 2, 4, 6},集合无序
-
字典生成式:
只有key的情况:l = ['name', 'gender', 'age'] new_d = {k:None for k in l if k != 'age' } # 注意外层括号修改为字典类型的花括号 print(new_d) # 打印:{'name': None, 'gender': None}
key和value都有的情况:
l = [('name', 'hugh'), ('gender', 'male'), ('age', 18)] # 要满足类型转换的条件 new_d = {k:v for k,v in l if k != 'name' } # for后面要有两个变量来接收取出的值 print(new_d) # 打印:{'gender': 'male', 'age': 18}
-
生成器生成式:
没有元组表达式!!!使用圆括号产生的是一个生成器。
l = [1, 2, 3, 4, 5, 6, 7, 8] new_l = (i for i in l if i%2==0) # 注意外层括号的修改 print(type(new_l)) # 打印:<class 'generator'> print(next(new_l)) # 打印:2