一、三元表达式

语法:
   [成立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)
练习 列表元素小写转大写

相关文章: