三元表达式

定义

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

补充:列表生成式中值允许出现forif 不能出现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
Last modification:March 24, 2022
如果觉得我的文章对你有用,请随意赞赏