一、三元表达式
- 语法格式:条件成立返回的值 if 条件 else 条件不成立的返回值
- 判断下,y的大小
# 常规
def func(x, y):
if x>y:
return x
else:
return y
res = func(1, 2)
# 三元表达式
x = 1
y = 2
res = x if x>y else y
二、生成式
2.1 列表生成式
- 将lis中以ld结尾的数据放到lis_new
# 常规
lis = ['abc_ld', 'nj_ld', 'jk_ok']
lis_new = []
for i in lis:
if i.endswith('ld'):
lis_new.append(i)
print(lis_new)
# 列表生成式
lis_new = [i for i in lis if i.endswith('ld')]
print(lis_new)
2.2 字典生成式
lis = ['a', 'b', 'c']
dic_new = {i: None for i in lis}
print(dic_new)
2.3 集合生成式
lis = ['a', 'b', 'c']
dic_new = {i for i in lis}
print(dic_new)
2.3 生成器表达式
g= (i for i in range(10) if i>3) # g内部一个值都没有
print(g, type(g))
next(g)
2.4 案例
- 统计文件中有多少个字符
# 常规
with open('text.txt', mode='rt', encoding='utf-8') as f:
res = 0
for line in f:
res += len(line)
print(res)
# 新玩法
with open('text.txt', mode='rt', encoding='utf-8') as f:
res = sum[len(line) for line in f]
print(res)
# 最高效
res = sum((len(line) for line in f))
res = sum(len(line) for line in f)
print(res)
相关连接(笔记来自于视频课程的归类整理):
[1]: https://www.bilibili.com/video/BV1QE41147hU?p=17
[2]: https://www.zhihu.com/column/c_1189883314197168128