三元表达式
定义
res = 条件成立时返回的值 if 条件 else 条件不成立时返回的值
使用
# 判断一个两个数字大小
a = 10
b = 100
res = a if a > b else b #三元表达式
print(res)
# 100
补充:三元表达式一般只用于二选一的情况 最好不要嵌套使用(语法不简洁)
列表推导式
定义
res = [表达式 for 变量名 in 循环对象]
或
res = [表达式 for 变量名 in 循环对象 if 条件]
使用
# 需求:将列表中所有的人名后面加上 _666
name_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