三元表达式
定义
res = 条件成立时返回的值 if 条件 else 条件不成立时返回的值
使用
# 判断一个两个数字大小a = 10b = 100res = a if a > b else b #三元表达式print(res)# 100
补充:三元表达式一般只用于二选一的情况 最好不要嵌套使用(语法不简洁)
列表推导式
定义
res = [表达式 for 变量名 in 循环对象]或res = [表达式 for 变量名 in 循环对象 if 条件]
使用
# 需求:将列表中所有的人名后面加上 _666name_list = ['jason', 'kevin', 'tony', 'oscar', 'jerry']res = [i+'_666' for i in name_list] # 列表生成式print(res)# ['jason_666', 'kevin_666', 'tony_666', 'oscar_666', 'jerry_666']res = [i+'_666' for i in name_list if i == 'kevin'] # 列表生成式print(res)# kevin_666
补充:列表生成式中值允许出现for和if不能出现else 因为会产生歧义(for和if都能结合else)
字典推导式
定义
res = { key: value for 变量名 in 循环对象 }或res ={ key: value for 变量名 in 循环对象 if 条件 }
使用
# 需求:将列表中各字符串值为键,各字符串的长度为值,组成键值对l = ['1', '22', '333', '4444', '55555']res = {i: len(i) for i in l}print(res)# {'1': 1, '22': 2, '333': 3, '4444': 4, '55555': 5}res = {i: len(i) for i in l if len(i) != 2}print(res)# {'1': 1, '333': 3, '4444': 4, '55555': 5}
集合推导式
定义
res = { 表达式 for 变量名 in 循环对象 }或res ={ 表达式 for 变量名 in 循环对象 if 条件 }
使用
res = {i for i in range(10)}print(res)# {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}res = {i for i in range(10) if i == 5}print(res)# 5
