一、三元表达式
语法:
[成立1 if condition1 else
成立2 if condition2 else ...
if 成立N conditionN else 不成立]
sex = 'man'
print('正确' if sex == 'man' else '错误')
# 正确
'''
语句解析:
sex = 'man'
if sex == 'man':
print('正确')
else:
print('错误')
'''
age = 23
res = '猜大了' if age > 23 else '猜小了' if age < 23 else '猜对了'
print(res)
# '猜对了'
'''
语句解析:
age = 23
if age >23:
res = '猜大了'
elif age <23:
res = '猜小了'
else:
res = '猜对了'
'''
二、列表推导式
# 语法
'''
[expression for item1 in iterable1 if condition1
for item2 in iterable2 if condition2
...
for itemN in iterableN if conditionN
]
'''
res = ['ege%s'%i for i in range(10) if i%2 ==0]
print(res,type(res))
# ['ege0', 'ege2', 'ege4', 'ege6', 'ege8'] <class 'list'>
# 类似于
res = []
for i in range(10):
if i%2 == 0:
res.append('ege%s'%i)
print(res)
三、字典生成器
d={i:i for i in range(10) if i > 0}
print(d)
# {1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}
# 类似于:
dic = {}
for i in range(10):
if i >0:
dic[i] = i
print(dic)
userinfo=[('egon','123'),('alex','456'),('wxx','679')]
dic={k:v for k,v in userinfo}
print(dic)
# {'egon': '123', 'alex': '456', 'wxx': '679'}
四、生成器表达式
# 把 列表推导式中的[] 变成() 就是 生成器表达式
# 生成器表达式
res = (i for i in range(10000000000000000000000000000000000000000000))
print(res)
# <generator object <genexpr> at 0x00000000022AD150>
# 生成器
def test():
yield 1
test = test()
print(test)
# <generator object test at 0x00000000021FD200>
print(next(test))
# 1
![]()
names = ['jmz','qqq','egon']
names = [name.upper() for name in names]
print(names)
练习 列表元素小写转大写