1. 程式人生 > 其它 >41.Python:生成式

41.Python:生成式


# 列表生成式
l1 = ['1s1_ss', '2s2_ss', '3s3_ss', '4s4_ss', '55']
new_l = []
for name in l1:
if name.endswith('ss'):
new_l.append(name)

print(new_l)

new_l = [name for name in l1 if name.endswith('ss')]
print(new_l)

new_l = [name.upper() for name in l1]
print(new_l)

new_l = [name.replace('_ss', '') for name in l1]
print(new_l)

# 字典生成式
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)

# ---------------------------------------
# 方式1
with open('筆記.txt', mode='rt', encoding='utf-8') as f:
res = 0
for line in f:
res += len(line)
print(res)

# 方式2
with open('筆記.txt', mode='rt', encoding='utf-8') as f:
res = 0
res = sum([len(line) for line in f])
print(res)

# 方式3:生成器表示式(效率最高)
with open('筆記.txt', mode='rt', encoding='utf-8') as f:
res = 0
res = sum(len(line) for line in f) # 每次只取一行
print(res)