Maison >développement back-end >Tutoriel Python >17 astuces Python utiles à partager !
Texte
Bonjour à tous, je suis la technologie d'intelligence artificielle Python.
Dans cet article, nous aborderons les astuces Python les plus couramment utilisées. La plupart de ces techniques sont des astuces simples que j'utilise dans mon travail quotidien. Je pense que les bonnes choses doivent être mises en avant et partagées avec tout le monde.
Sans plus attendre, commençons ! :)
Parfois, nous avons besoin d'obtenir plusieurs entrées de l'utilisateur afin d'utiliser une boucle ou n'importe quelle itération, l'écriture générale est la suivante :
# bad practice码 n1 = input("enter a number : ") n2 = input("enter a number : ") n2 = input("enter a number : ") print(n1, n2, n3)
Mais là est une meilleure façon de le gérer comme suit :
# good practice n1, n2, n3 = input("enter a number : ").split() print(n1, n2, n3)
Si nous devons vérifier plusieurs instructions conditionnelles dans le code, nous pouvons utiliser la fonction all() ou any() pour atteindre nos objectifs. De manière générale, all() est utilisé lorsque nous avons plusieurs conditions et et any() est utilisé lorsque nous avons plusieurs conditions ou. Cette utilisation rendra notre code plus clair et plus facile à lire, et nous aidera à éviter des problèmes lors du débogage.
L'exemple général pour all() est le suivant :
size = "lg" color = "blue" price = 50 # bad practice if size == "lg" and color == "blue" and price < 100: print("Yes, I want to but the product.")
La meilleure méthode de traitement est la suivante :
# good practice conditions = [ size == "lg", color == "blue", price < 100, ] if all(conditions): print("Yes, I want to but the product.")
L'exemple général pour any() est la suivante :
# bad practice size = "lg" color = "blue" price = 50 if size == "lg" or color == "blue" or price < 100: print("Yes, I want to but the product.")
La meilleure méthode de traitement est la suivante :
# good practice conditions = [ size == "lg", color == "blue", price < 100, ] if any(conditions): print("Yes, I want to but the product.")
C'est facile à mettre en œuvre, nous obtenons l'entrée de l'utilisateur, la convertissons en un entier, vérifions l'opération de reste sur le nombre 2, si le reste est nul, alors il est pair.
print('odd' if int(input('Enter a number: '))%2 else 'even')
Si nous devons échanger la valeur d'une variable en Python, nous n'avons pas besoin de définir une variable temporaire pour fonctionner. Nous utilisons généralement le code suivant pour implémenter l'échange de variables :
v1 = 100 v2 = 200 # bad practice temp = v1 v1 = v2 v2 = temp
Mais une meilleure méthode de traitement est la suivante :
v1 = 100 v2 = 200 # good practice v1, v2 = v2, v1
Le moyen le plus simple d'inverser la chaîne est [: :-. 1], le code est le suivant :
print("John Deo"[::-1])
Pour déterminer si une chaîne est un palindrome en Python, utilisez simplement l'instruction
string.find(string[::-1]) == 0, l'exemple de code est le suivant :
v1 = "madam" # is a palindrome string v2 = "master" # is not a palindrome string print(v1.find(v1[::-1]) == 0) # True print(v1.find(v2[::-1]) == 0) # False
Dans la plupart des cas, nous n'avons qu'une seule instruction après la condition, donc utiliser l'instruction if en ligne peut nous aider à écrire un code plus concis. Par exemple, la méthode d'écriture générale est :
name = "ali" age = 22 # bad practices if name: print(name) if name and age > 18: print("user is verified")
Mais une meilleure façon de gérer cela est la suivante :
# a better approach print(name if name else "") """ here you have to define the else condition too""" # good practice name and print(name) age > 18 and name and print("user is verified")
Nous n'avons pas besoin de parcourir toute la liste pour vérifier. éléments en double, on peut simplement utiliser set() pour supprimer les éléments en double, le code est le suivant :
lst = [1, 2, 3, 4, 3, 4, 4, 5, 6, 3, 1, 6, 7, 9, 4, 0] print(lst) unique_lst = list(set(lst)) print(unique_lst)
En Python, vous pouvez utiliser la fonction max() et transmettre la liste. .count comme clé pour connaître le nombre de répétitions dans la liste. Pour le plus d'éléments, le code est le suivant :
lst = [1, 2, 3, 4, 3, 4, 4, 5, 6, 3, 1, 6, 7, 9, 4, 0] most_repeated_item = max(lst, key=lst.count) print(most_repeated_item)
Ma fonctionnalité préférée en Python est la compréhension de liste. code très concis et puissant, et ces codes se lisent presque comme un langage naturel. Tout aussi faciles à comprendre. Les exemples sont les suivants :
numbers = [1,2,3,4,5,6,7] evens = [x for x in numbers if x % 2 is 0] odds = [y for y in numbers if y not in evens] cities = ['London', 'Dublin', 'Oslo'] def visit(city): print("Welcome to "+city) for city in cities: visit(city)
En Python, nous pouvons utiliser *args pour transmettre plusieurs paramètres aux fonctions, les exemples sont les suivants :
def sum_of_squares(n1, n2) return n1**2 + n2**2 print(sum_of_squares(2,3)) # output: 13 """ what ever if you want to pass, multiple args to the function as n number of args. so let's make it dynamic. """ def sum_of_squares(*args): return sum([item**2 for item in args]) # now you can pass as many parameters as you want print(sum_of_squares(2, 3, 4)) print(sum_of_squares(2, 3, 4, 5, 6))
lst = ["blue", "lightblue", "pink", "orange", "red"] for idx, item in enumerate(lst): print(idx, item)
13. Épisser plusieurs éléments dans la liste
names = ["john", "sara", "jim", "rock"] print(", ".join(names))
Fusionner les deux dictionnaires
En Python, nous pouvons utiliser {**dict_name, **dict_name2, …} pour fusionner plusieurs dictionnaires. L'exemple est le suivant :
d1 = {"v1": 22, "v2": 33} d2 = {"v2": 44, "v3": 55} d3 = {**d1, **d2} print(d3)
Le résultat est le suivant :
{'v1': 22, 'v2': 44, 'v3': 55}
15 Utilisez deux listes pour générer un dictionnaire
keys = ['a', 'b', 'c'] vals = [1, 2, 3] zipped = dict(zip(keys, vals))
16. Les dictionnaires sont triés par valeur
d = { "v1": 80, "v2": 20, "v3": 40, "v4": 20, "v5": 10, } sorted_d = dict(sorted(d.items(), key=lambda item: item[1])) print(sorted_d) 当然我们也可以使用itemgetter( )来替代上述 lambda函数,代码如下: from operator import itemgetter sorted_d = dict(sorted(d.items(), key=itemgetter(1)))
De plus, nous pouvons également. passez reverse =True pour le trier par ordre décroissant :
sorted_d = dict(sorted(d.items(), key=itemgetter(1), reverse=True))
17. Pretty print
from pprint import pprint data = { "name": "john deo", "age": "22", "address": {"contry": "canada", "state": "an state of canada :)", "address": "street st.34 north 12"}, "attr": {"verified": True, "emialaddress": True}, } print(data) pprint(data)
Le résultat est le suivant :
{'name': 'john deo', 'age': '22', 'address': {'contry': 'canada', 'state': 'an state of canada :)', 'address': 'street st.34 north 12'}, 'attr': {'verified': True, 'emialaddress': True}} {'address': {'address': 'street st.34 north 12', 'contry': 'canada', 'state': 'an state of canada :)'}, 'age': '22', 'attr': {'emialaddress': True, 'verified': True}, 'name': 'john deo'}
On peut voir que l'utilisation de la fonction pprint peut rendre la sortie du dictionnaire plus facile à lire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!