Python es un lenguaje de programación versátil con una gran cantidad de bibliotecas y marcos. Existen algunas bibliotecas y consejos de codificación de Python poco conocidos que pueden facilitar su trabajo como desarrollador y hacer que su código sea más eficiente.
Este artículo explora algunos trucos de Python menos conocidos que son muy útiles pero no muy conocidos. Al aprender y utilizar estas técnicas, puede ahorrar tiempo y esfuerzo y hacer que su código sea más elegante y eficiente. Entonces, ¡profundicemos en estas joyas ocultas del lenguaje Python!
1. Operador ternario
El operador ternario es la abreviatura de declaración if-else. La sintaxis es value_if_true if condition else value_if_false
. El operador ternario es una sola línea de código que puede reemplazar varias líneas de declaraciones if-else, lo que hace que su código sea más conciso.
a = 5
b = 10
max = a if a > b else b # value_if_true if condition else value_if_false
print(max)
# 10
El código anterior funciona comprobando si "a" es mayor que "b" y devuelve "a" si es verdadero y "b" si es falso.
2. Función de enumeración
enumerate()
La función agrega un contador al objeto iterable y lo devuelve como un objeto de enumeración. Esta función es útil cuando desea recorrer una lista y realizar un seguimiento del índice.
fruits = ['apple', 'banana', 'mango']
for index, fruit in enumerate(fruits):
print(index, fruit)
# 0 apple
# 1 banana
#2 mango
3. Función de compresión
La función zip() agrega los elementos de cada iterable y devuelve un iterador de tuplas. Esta función es útil cuando desea recorrer dos o más listas simultáneamente.
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
for x, y in zip(list1, list2):
print(x, y)
# 1 a
# 2 b
# 3 c
4. Generación de listas
Las listas por comprensión son una forma concisa de crear una lista a partir de una lista existente o de cualquier objeto iterable. Este es un resumen que puede reemplazar un bucle for, haciendo que su código sea más eficiente y legible.
squared_numbers = [x**2 for x in range(1, 6)]
print(squared_numbers)
# [1, 4, 9, 16, 25]
5. Funciones anónimas
Lambda
Las funciones son funciones anónimas definidas mediante la palabra clave lambda. def
Son útiles cuando necesita escribir pequeñas funciones únicas y no desea utilizar palabras clave para definir funciones con nombre.
add = lambda x, y: x + y
result = add(3, 4)
print(result)
# 7
6.cualquier () y todas () funciones
La función any() y la función all() devuelven Verdadero o Falso según la autenticidad de los elementos del iterable. La función any() devuelve True si algún elemento de iterable es verdadero, y la función all() devuelve True si todos los elementos de iterable son verdaderos.
numbers = [1, 2, 3, 0, 4]
result = any(numbers) # True
result = all(numbers) # False。0使结果为False
7. módulo de iteración
itertools
El módulo proporciona un conjunto de funciones para trabajar con iteradores. chain
Las funciones de este módulo incluyen product
y permutations
.
import itertools
numbers = [1, 2, 3]
result = list(itertools.permutations(numbers))
# 输出所有排列组合
# [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]
8. Generador
Un generador es un tipo iterable que genera valores sobre la marcha en lugar de almacenarlos en la memoria. Se define mediante la palabra clave rendimiento y se utiliza para crear iteradores personalizados.
# 使用yield关键字创建生成器
def fibonacci_series(n):
a, b = 0, 1
for i in range(n):
yield a
a, b = b, a + b
# 输出迭代器中的值
for number in fibonacci_series(10):
print(number)
# 0
# 1
# 1
# 2
# 3
# 5
# 8
# 13
# 21
# 34
9. decorador
Un decorador es una forma de modificar el comportamiento de una función o clase. Se define mediante el símbolo @, que se puede utilizar para agregar funcionalidad a la función, como registro, temporización o autenticación.
def log_function(func):
def wrapper(*args, **kwargs):
print(f'Running {func.__name__}')
result = func(*args, **kwargs)
print(f'{func.__name__} returned {result}')
return result
return wrapper
@log_function
def add(x, y):
return x + y
print(add(5,7))
# 运行add函数,返回值为12
10. Uso de múltiples parámetros de función
En Python, puede utilizar los operadores * y ** para manejar múltiples parámetros de funciones. El operador * se usa para pasar la lista de argumentos como argumentos posicionales separados y el operador ** se usa para pasar un diccionario de argumentos de palabras clave.
def print_arguments(*args, **kwargs):
print(args)
print(kwargs)
print_arguments(1, 2, 3, name='John', age=30)
# (1, 2, 3)
# {'name': 'John', 'age': 30}
11. Importación dinámica
Cuando desee importar un módulo según la entrada o configuración del usuario, puede utilizar el módulo de importación dinámica importlib.
import importlib
module_name = 'math'
module = importlib.import_module(module_name)
result = module.sqrt(9)
12. Generación de diccionario
La generación de diccionarios es una forma concisa de crear un diccionario a partir de un diccionario existente o de cualquier objeto iterable. Es una sola línea de código que puede reemplazar el bucle for, haciendo que su código sea más eficiente y legible.
squared_numbers = {x: x**2 for x in range(1, 6)}
print(squared_numbers)
# {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
13. Objetos invocables
En Python, cualquier objeto que pueda llamarse función se denomina objeto invocable, incluidas funciones, métodos, clases e incluso __call__
objetos que definen métodos.
class Adder:
def __call__(self, x, y):
return x + y
adder = Adder()
result = adder(3, 4)
print(result)
#7
14. Separe números/caracteres grandes con guiones bajos
Los números grandes son difíciles de distinguir a primera vista, por lo que en Python puedes usar guiones bajos para que los números sean más fáciles de leer.
num_test = 100_345_405 # 一个大数字
print(num_test)
# 100345405
15. Fusiona rápidamente dos diccionarios
Puede utilizar el siguiente código para fusionar rápidamente dos diccionarios en Python.
dictionary_one = {"a": 1, "b": 2}
dictionary_two = {"c": 3, "d": 4}
merged = {**dictionary_one, **dictionary_two}
print(merged)
# {'a': 1, 'b': 2, 'c': 3, 'd': 4}
16. Las listas, conjuntos y diccionarios son mutables.
Mutable significa que un objeto (lista, conjunto o diccionario) se puede cambiar o actualizar sin cambiar el puntero del objeto en la memoria. El efecto real se puede ver en el siguiente ejemplo.
En el siguiente ejemplo, al actualizar la lista de ciudades agregando una nueva ciudad, puede ver que el ID (puntero de objeto) sigue siendo el mismo, al igual que la colección y el diccionario.
cities = ["Munich", "Zurich", "London"]
print(id(cities)) # 2797174365184
cities.append("Berlin")
print(id(cities)) # 2797174365184
# 集合
my_set = {1, 2, 3}
print(id(my_set)) # 2797172976992
my_set.add(4)
print(id(my_set)) # 2797172976992
diccionario
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
print(id(thisdict)) #2797174128256
thisdict["engine"] = "2500cc"
print(id(thisdict)) #2797174128256
Finalmente, aquí hay un conjunto de materiales de aprendizaje gratuitos compartidos con usted de forma gratuita, incluidos videos, códigos fuente / libros electrónicos. Espero que pueda ayudar a aquellos amigos que no están satisfechos con la situación actual y quieren mejorar pero no tienen dirección. También puedes agregarme a WeChat para aprender y comunicarnos juntos.
① Python所有方向的学习路线图
, sepa claramente qué aprender en cada dirección
② 100多节Python课程视频
, que cubre conceptos básicos esenciales, rastreadores y análisis de datos.
③ 100多个Python实战案例
, el aprendizaje ya no se trata solo de teoría
④ 华为出品独家Python漫画教程
, también puedes aprender en tu teléfono móvil
⑤ 历年互联网企业Python面试真题
, muy conveniente al revisar
1. Rutas de aprendizaje en todas las direcciones de Python
La ruta omnidireccional de Python consiste en organizar los puntos técnicos de uso común de Python para formar un resumen de los puntos de conocimiento en varios campos. Su utilidad es que puede encontrar los recursos de aprendizaje correspondientes de acuerdo con los puntos de conocimiento anteriores para garantizar un aprendizaje más completo. .
2. Software de aprendizaje
Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas. El software de desarrollo comúnmente utilizado para aprender Python está aquí, lo que les ahorra a todos mucho tiempo.
3. Conjunto completo de libros electrónicos en PDF
La ventaja de los libros es que tienen autoridad y un sistema de sonido. Cuando empiezas a aprender, puedes simplemente mirar vídeos o escuchar las conferencias de alguien. Pero una vez que terminas de aprender, sientes que lo has dominado. En este momento, Se recomienda que siga leyendo los libros. Los libros técnicos autorizados también son imprescindibles para todo programador.
4. Vídeo introductorio al aprendizaje
Cuando miramos videos y aprendemos, no podemos simplemente mover los ojos y el cerebro, pero no las manos. El método de aprendizaje más científico es usarlos después de comprenderlos. En este momento, los proyectos prácticos son muy adecuados.
4. Casos prácticos
La teoría óptica es inútil, debes aprender a seguirla y practicarla para poder aplicar lo aprendido en la práctica, en este momento puedes aprender de algunos casos prácticos.
5. "Lea cómics y aprenda Python" producido por el maestro en programación de la Universidad de Tsinghua
Utilice cómics fáciles de entender para enseñarle a aprender Python, haciéndolo más fácil de recordar y no aburrido.
Admite 600 episodios de vídeo:
6. Materiales de la entrevista
Debemos aprender Python para encontrar un trabajo bien remunerado. Las siguientes preguntas de la entrevista son los materiales de entrevista más recientes de empresas de Internet de primer nivel como Alibaba, Tencent, Byte, etc., y los jefes de Alibaba han dado respuestas autorizadas. Después de terminar este conjunto Creo que todos pueden encontrar un trabajo satisfactorio según la información de la entrevista.
**Se han empaquetado recursos de aprendizaje, los amigos que los necesiten pueden comentar o enviarme un mensaje privado.