Python 生成式

1、列表生成式

l = ['alex_dsb', 'lxx_dsb', 'wxx_dsb', "xxq_dsb", 'egon']
new_l = []
for name in l:
	if name.endswith('dsb'):
		new_l.append(name)
print(new_l)  # ['alex_dsb', 'lxx_dsb', 'wxx_dsb', 'xxq_dsb']

new_l=[name for name in l if name.endswith('dsb')]
new_l=[name for name in l]

print(new_l)

# 把所有小写字母全变成大写
new_l=[name.upper() for name in l]
print(new_l)

# 把所有的名字去掉后缀_dsb
new_l=[name.replace('_dsb','') for name in l]
print(new_l)

2、字典生成式

keys=['name','age','gender']
dic={key:None for key in keys}
print(dic)

items=[('name','egon'),('age',18),('gender','male')]
res={k:v for k,v in items if k != 'gender'}
print(res)

3、集合生成式

keys=['name','age','gender']
set1={key for key in keys}
print(set1,type(set1))

4、生成器表达式

# g=(i for i in range(10) if i > 3)
# !!!!!!!!!!!强调!!!!!!!!!!!!!!!
# 此刻g内部一个值也没有

# print(g,type(g))

# print(g)
# print(next(g))
# print(next(g))
# print(next(g))
# print(next(g))
# ...
# 获取文件的字节数
with open('笔记.txt', mode='rt', encoding='utf-8') as f:
	# 方式一:
	res = 0
	for line in f:
		res += len(line)
	print(res)

	# 方式二:
	res = sum([len(line) for line in f])
	print(res)

	# 方式三 :效率最高
	res = sum((len(line) for line in f))
	print(res)

	# 上述可以简写为如下形式
	res = sum(len(line) for line in f)
	print(res)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿过家家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值