
enero de 1994, Guido van Rossum Anunciar Pitón 1.0 Lanzado al mundo a través de una publicación en Usenet, prometía un lenguaje con una «sintaxis legible» que salvaría a los desarrolladores de «romper el código Perl que escribiste la semana pasada».
Treinta años después, Python se ha convertido en uno de los lenguajes de programación más utilizados del mundo. Para celebrar el 32 aniversario de Python, aquí están los 32 jerga útil de Python Esto ilustra por qué la simplicidad y claridad de Python siguen siendo importantes.
notas: Hay algunos ejemplos que cambian ligeramente la regla de «una línea» en favor de la practicidad. El objetivo aquí es la claridad, no el golf de códigos.
1. Intercambiar dos variables
a, b = b, a
No se necesitan variables temporales. El desempaquetado de tuplas de Python hace que esto sea muy fácil.
Prueba esto:
Ejecute el siguiente código desde la consola de Python:
>>> a, b = 5, 10
>>> print(f"Before: a={a}, b={b}")
Before: a=5, b=10
>>> a, b = b, a
>>> print(f"After: a={a}, b={b}")
After: a=10, b=52. Invertir una cuerda
reversed_string = original[::-1]
El símbolo de corte con zancada -1 se lee como magia.
Prueba esto:
>>> original = "Ostechnix"
>>> reversed_string = original[::-1]
>>> print(reversed_string)
xinhcetsO
3. Comprueba si la cuerda es un palíndromo.
is_palindrome = text == text[::-1]
Combine la inversión de cuerdas con la comparación para la detección de palíndromos sobre la marcha.
Prueba esto:
>>> text = "racecar"
>>> is_palindrome = text == text[::-1]
>>> print(is_palindrome)
True
>>> text = "ostechnix"
>>> print(text == text[::-1])
False
4. Aplanar listas anidadas
flat = [item for sublist in nested_list for item in sublist]
Las listas por comprensión hacen que el aplanamiento sea elegante y legible.
Prueba esto:
>>> nested_list = [[1, 2], [3, 4], [5, 6]] >>> flat = [item for sublist in nested_list for item in sublist] >>> print(flat) [1, 2, 3, 4, 5, 6]
5. Busca elementos únicos
unique = list(set(my_list))
Convierta a un conjunto y regrese. Aplicaciones prácticas de la teoría de conjuntos en Python.
Prueba esto:
>>> my_list = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4] >>> unique = list(set(my_list)) >>> print(unique) [1, 2, 3, 4]
6. Leer archivos en la lista
lines = open('file.txt').read().splitlines()Una línea del disco a la memoria (aunque recuerda usar with ¡Para código de producción! ).
Prueba esto:
>>> # First create a test file
>>> with open('test.txt', 'w') as f:
... f.write("Line 1\nLine 2\nLine 3")
>>> lines = open('test.txt').read().splitlines()
>>> print(lines)
['Line 1', 'Line 2', 'Line 3']7. Encuentra los elementos más comunes
most_common = max(set(my_list), key=my_list.count)
uso inteligente max() Tiene función de botón personalizado. Funciona bien para listas pequeñas. usar Counter para datos más grandes.
Prueba esto:
>>> my_list = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4] >>> most_common = max(set(my_list), key=my_list.count) >>> print(most_common) 4
8. Transponer matriz
transposed = list(zip(*matrix))
este * Aquí los operadores de desembalaje hacen el trabajo pesado.
Prueba esto:
>>> matrix = [[1, 2, 3], [4, 5, 6]] >>> transposed = list(zip(*matrix)) >>> print(transposed) [(1, 4), (2, 5), (3, 6)] >>> # Convert tuples to lists if needed >>> print([list(row) for row in transposed]) [[1, 4], [2, 5], [3, 6]]
9. Crea un diccionario a partir de dos listas.
my_dict = dict(zip(keys, values))
zip() es el pegamento que mantiene unida la lista.
Prueba esto:
>>> keys = ['a', 'b', 'c']
>>> values = [1, 2, 3]
>>> my_dict = dict(zip(keys, values))
>>> print(my_dict)
{'a': 1, 'b': 2, 'c': 3}10. Elimina duplicados y mantén el orden.
unique_ordered = list(dict.fromkeys(my_list))
A partir de Python 3.7, los diccionarios mantienen el orden de inserción, ¡lo cual es una característica que vale la pena celebrar!
Prueba esto:
>>> my_list = [3, 1, 2, 1, 3, 4, 2, 5] >>> unique_ordered = list(dict.fromkeys(my_list)) >>> print(unique_ordered) [3, 1, 2, 4, 5]
11. Encuentra todos los índices de un elemento.
indices = [i for i, x in enumerate(my_list) if x == target]
Enumerar y filtrar en una línea limpia.
Prueba esto:
>>> my_list = [1, 2, 3, 2, 4, 2, 5] >>> target = 2 >>> indices = [i for i, x in enumerate(my_list) if x == target] >>> print(indices) [1, 3, 5]
12. Verifique si alguno o todos los artículos califican
has_even = any(x % 2 == 0 for x in numbers) all_positive = all(x > 0 for x in numbers)
este any() y all() Las funciones con expresiones generadoras son muy poderosas.
Prueba esto:
>>> numbers = [1, 2, 3, 4, 5] >>> has_even = any(x % 2 == 0 for x in numbers) >>> print(has_even) True >>> all_positive = all(x > 0 for x in numbers) >>> print(all_positive) True
13. Ordenar diccionario por valor
sorted_dict = dict(sorted(my_dict.items(), key=lambda x: x[1]))
Las funciones Lambda facilitan la clasificación personalizada.
Prueba esto:
>>> my_dict = {'a': 3, 'b': 1, 'c': 2}
>>> sorted_dict = dict(sorted(my_dict.items(), key=lambda x: x[1]))
>>> print(sorted_dict)
{'b': 1, 'c': 2, 'a': 3}14. Fusionar dos diccionarios
merged = {**dict1, **dict2}El operador de descompresión del diccionario (Python 3.5+) es conciso y claro.
Prueba esto:
>>> dict1 = {'a': 1, 'b': 2}
>>> dict2 = {'c': 3, 'd': 4}
>>> merged = {**dict1, **dict2}
>>> print(merged)
{'a': 1, 'b': 2, 'c': 3, 'd': 4}15. Obtenga los primeros N elementos del iterador
first_n = list(itertools.islice(iterator, n))
itertools.islice() Funciona con cualquier iterador sin cargar todo en la memoria.
Prueba esto:
>>> import itertools >>> iterator = iter(range(100)) >>> first_n = list(itertools.islice(iterator, 5)) >>> print(first_n) [0, 1, 2, 3, 4]
16. Crear gráficos de contador/frecuencia.
from collections import Counter; freq = Counter(my_list)
este Counter La clase es la navaja suiza para el conteo de frecuencia.
Prueba esto:
>>> from collections import Counter
>>> my_list = ['a', 'b', 'a', 'c', 'b', 'a']
>>> freq = Counter(my_list)
>>> print(freq)
Counter({'a': 3, 'b': 2, 'c': 1})
>>> print(freq.most_common(2))
[('a', 3), ('b', 2)]17. Encuentra elementos en la lista A pero no en la lista B
difference = list(set(list_a) - set(list_b))
La acción de configuración lo hace intuitivo y rápido.
Prueba esto:
>>> list_a = [1, 2, 3, 4, 5] >>> list_b = [3, 4, 5, 6, 7] >>> difference = list(set(list_a) - set(list_b)) >>> print(difference) [1, 2]
18. Obtén todas las permutaciones de una lista.
from itertools import permutations; perms = list(permutations(my_list))
itertools Las explosiones combinadas se manejan por usted.
Prueba esto:
>>> from itertools import permutations >>> my_list = [1, 2, 3] >>> perms = list(permutations(my_list)) >>> print(perms) [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]
19. Bonita impresión JSON
import json; print(json.dumps(data, indent=2))
Formato JSON instantáneo y legible por humanos.
Prueba esto:
>>> import json
>>> data = {'name': 'Python', 'age': 32, 'features': ['readable', 'powerful']}
>>> print(json.dumps(data, indent=2))
{
"name": "Python",
"age": 32,
"features": [
"readable",
"powerful"
]
}20. Calcular factoriales
from math import factorial; result = factorial(n)
O si quieres ser más elegante: result = eval('*'.join(map(str, range(1, n+1))))
Prueba esto:
>>> from math import factorial
>>> result = factorial(5)
>>> print(result)
120
>>> # The fancy way
>>> n = 5
>>> result = eval('*'.join(map(str, range(1, n+1))))
>>> print(result)
12021. FizzBuzz una línea
['Fizz'*(i%3==0) + 'Buzz'*(i%5==0) or str(i) for i in range(1,101)]
Preguntas de entrevista clásicas resueltas con multiplicación de cadenas y lógica booleana.
Prueba esto:
>>> fizzbuzz = ['Fizz'*(i%3==0) + 'Buzz'*(i%5==0) or str(i) for i in range(1,21)] >>> print(fizzbuzz) ['1', '2', 'Fizz', '4', 'Buzz', 'Fizz', '7', '8', 'Fizz', 'Buzz', '11', 'Fizz', '13', '14', 'FizzBuzz', '16', '17', 'Fizz', '19', 'Buzz']
22. Encuentra la intersección de múltiples listas.
intersection = list(set.intersection(*map(set, list_of_lists)))
Teoría de conjuntos combinada con un elegante análisis de intersecciones de listas múltiples.
Prueba esto:
>>> list_of_lists = [[1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6]] >>> intersection = list(set.intersection(*map(set, list_of_lists))) >>> print(intersection) [3, 4]
23. Convertir cadena a mayúsculas y minúsculas (seguro)
title=" ".join(word.capitalize() for word in text.split())
Comparar .title() Porque maneja los apóstrofes correctamente.
Prueba esto:
>>> text = "python's awesome one-liners" >>> title=" ".join(word.capitalize() for word in text.split()) >>> print(title) Python's Awesome One-liners >>> # Compare with .title() >>> print(text.title()) Python'S Awesome One-Liners
24. Crea un rango con números de coma flotante.
float_range = [x * 0.1 for x in range(10, 100)]
Superar la comprensión de listas range()límite de números enteros.
Prueba esto:
>>> float_range = [x * 0.1 for x in range(10, 20)] >>> print(float_range) [1.0, 1.1, 1.2000000000000002, 1.3, 1.4000000000000001, 1.5, 1.6, 1.7000000000000002, 1.8, 1.9000000000000001]
25. Descargar archivos de Internet
import urllib.request; urllib.request.urlretrieve(url, 'filename.ext')
Obtenga archivos de Internet en una línea.
Prueba esto:
>>> import urllib.request
>>> url="
>>> urllib.request.urlretrieve(url, 'python-logo.png')
('python-logo.png', )
>>> # File is now saved as 'python-logo.png' 26. Genera contraseñas aleatorias
import secrets, string; pwd = ''.join(secrets.choice(string.ascii_letters + string.digits) for _ in range(16))
Genere contraseñas aleatorias de forma segura utilizando la biblioteca estándar.
Prueba esto:
>>> import secrets, string >>> pwd = ''.join(secrets.choice(string.ascii_letters + string.digits) for _ in range(16)) >>> print(pwd) Kx9mP2nLq8WzBv3Y >>> # Each run generates a cryptographically secure password >>> pwd = ''.join(secrets.choice(string.ascii_letters + string.digits) for _ in range(16)) >>> print(pwd) a7QnM5tR1wJzXp4G
27. Calcular el tiempo de ejecución del código (verificación rápida)
import time; start = time.time(); your_function(); elapsed = time.time() - start
Mediciones de rendimiento rápidas y sucias (utilizando timeit para una evaluación comparativa rigurosa).
Prueba esto:
>>> import time
>>> start = time.time()
>>> sum(range(1000000)) # Some operation to time
499999500000
>>> elapsed = time.time() - start
>>> print(f"Execution time: {elapsed:.6f} seconds")
Execution time: 15.000495 seconds28. Encuentra todas las ocurrencias usando expresiones regulares.
import re; matches = re.findall(pattern, text)
Las expresiones regulares facilitan la combinación de patrones.
Prueba esto:
>>> import re >>> text = "Python 1.0, Python 2.0, Python 3.0" >>> pattern = r'Python \d+\.\d+' >>> matches = re.findall(pattern, text) >>> print(matches) ['Python 1.0', 'Python 2.0', 'Python 3.0']
29. Crea un servidor HTTP simple
python -m http.server 8000
Bueno, técnicamente esto es una línea de comando de una sola línea, ¡pero es demasiado útil para no incluirlo!
Prueba esto:
# Run this in your terminal $ python -m http.server 8000 Serving HTTP on 0.0.0.0 port 8000 ( ... # Then visit in your browser # Perfect for quickly sharing files or testing web pages locally
30. Operadores de comparación de cadenas
is_valid = 0 <= value <= 100
Python te permite escribir matemáticas como piensas.
Prueba esto:
>>> value = 50 >>> is_valid = 0 <= value <= 100 >>> print(is_valid) True >>> value = 150 >>> print(0 <= value <= 100) False >>> # You can chain any comparison operators >>> x = 5 >>> print(1 < x < 10) True
31. Obtener producto cartesiano de listas
from itertools import product; pairs = list(product(list1, list2))
Genera todas las combinaciones sin bucles anidados.
Prueba esto:
>>> from itertools import product
>>> list1 = ['A', 'B']
>>> list2 = [1, 2]
>>> pairs = list(product(list1, list2))
>>> print(pairs)
[('A', 1), ('A', 2), ('B', 1), ('B', 2)]
>>> # Works with any number of lists
>>> print(list(product(['X', 'Y'], [1, 2], ['a', 'b'])))
[('X', 1, 'a'), ('X', 1, 'b'), ('X', 2, 'a'), ('X', 2, 'b'), ('Y', 1, 'a'), ('Y', 1, 'b'), ('Y', 2, 'a'), ('Y', 2, 'b')]32. Cree un servidor Lambda rápido (¡sí, de verdad!)
from flask import Flask; app = Flask(__name__); app.route('/')(lambda: 'Hello!')No se recomienda para uso en producción, ¡pero muestra lo simple que puede ser Flask!
Prueba esto:
>>> from flask import Flask
>>> app = Flask(__name__)
>>> @app.route('/')
... def hello():
... return 'Hello, Python is 32!'
>>> # Then run: app.run()
# Visit to see your message
# Note: You'll need Flask installed: pip install flaskEl espíritu de Python
Estas bromas no pretenden ser inteligentes. Reflejan los valores de larga data de Python:
- La legibilidad triunfa sobre la habilidad
- comportamiento claro
- Potente biblioteca estándar
- código auto explicativo
Cuando Guido anunció Python 1.0 en 1994, prometió que sería un lenguaje legible. Treinta y dos años después, Python todavía cumple esa promesa.
¡Feliz 32 aniversario, Pitón!
¿Cuál es tu declaración de Python favorita? ¡Por favor comparte en los comentarios a continuación!
Lectura adicional:







![Cómo actualizar a Fedora 36 desde Fedora 35 [Workstation And Server]](https://muylinux.xyz/wp-content/uploads/2022/05/1652296512_Como-actualizar-a-Fedora-36-desde-Fedora-35-Workstation-And-220x150.png)
