16、三元表达式

一、三元表达式

  • 语法格式:条件成立返回的值 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值