Trece expresión de yuanes
Un triplete de expresiones es una pitón de código simplificado para nosotros proporcionar soluciones a la siguiente sintaxis:
res = 条件成立时要返回的值 if 条件 else 条件不成立时要返回的值
columnas de casos específicos:
res = 1 if 1 > 2 else 2
print(res) #2
Las modificaciones a los siguientes requisitos en que tres expresiones:
Un formato común:
def func(x,y):
if x > y:
return x
else:
return y
res = func(1,2)
print(res)#2
Tres de yuanes formato de expresión:
def func(x, y):
res = x if x > y else y
return res
res = func(5, 2)
print(res) # 5
Dos listas de Fórmula
Lista de fórmula es una solución de código Python simplificado que nosotros utilizamos para generar rápidamente una lista de
l = ['alex_dsb', 'egon', 'wxx_dsb', 'lxx_dsb']
# new_l = []
# for name in l:
# if name.endswith('dsb'):
# new_l.append(name)
# print(new_l) #['alex_dsb', 'wxx_dsb', 'lxx_dsb']
#列表生成式
new_l = [name for name in l if name.endswith('dsb')]
print(new_l) #['alex_dsb', 'wxx_dsb', 'lxx_dsb']
#把所有小写字母都变成大写
new_l = [name.upper() for name in l]
print(new_l) #['ALEX_DSB', 'EGON', 'WXX_DSB', 'LXX_DSB']
#去掉后缀_dsb
new_l = [name.strip('_dsb') for name in l]
print(new_l) #['alex', 'egon', 'wxx', 'lxx']
Tres diccionarios de fórmula
Lista de fórmula es una solución de código Python simplificado que nosotros utilizamos para generar rápidamente diccionario
#字典生成式
keys = ['name', 'age', 'gender']
dic = {key:None for key in keys}
print(dic) #{'name': None, 'age': None, 'gender': None}
#去掉 gender 关键字
items = [('name', 'egon'),('age', 18), ('gender','female')]
dic = {key:value for key, value in items if key != 'gender'}
print(dic) #{'name': 'egon', 'age': 18}
fórmula Cuatro colección
#集合生成式
keys = ['name', 'age', 'gender']
set1 = {key for key in keys}
print(set1,type(set1)) #{'gender', 'name', 'age'} <class 'set'>
Nota: hay una fórmula tuplas (tuplas inmutable)
Generador de cinco fórmula
Creación de un objeto generador de dos maneras: una es la llamada a la función con la palabra clave de rendimiento, y la otra es la expresión del generador.
expresión Generador devuelve un objeto generador
#生成式生成器
g = (i for i in range(7) if i>3)
print(g) #<generator object <genexpr> at 0x10408fe08>
#此刻g 内部一个值也没有
print(next(g)) #4
print(next(g)) #5
print(next(g)) #6
print(next(g)) #抛出异常
Si queremos leer el contenido de un gran número de caracteres en el archivo, debe basarse en el generador de patrones de expresión completa
La razón: el equivalente de un generador de funciones, una muy pequeña huella de memoria
#统计文件内容长度
with open('a.txt', 'r', encoding='utf-8')as f:
#方式一
# res = 0
# for line in f:
# res += len(line)
# print(res)
#方式二
res = sum([len(line) for line in f]) #sum 底层就相当于 for 循环取值再依次相加
print(res)
#方式三:效率最高
res = sum((len(line) for line in f)) #使用生成器对象,不会占用过多的内存空间
print(res)
#上述可以简写为如下形式:
res = sum(len(line) for line in f)
print(res)