Partagez 18 conseils de programmation efficaces avec Python

WBOY
Libérer: 2023-04-16 15:25:03
avant
1087 Les gens l'ont consulté

Partagez 18 conseils de programmation efficaces avec Python

Cet article est compilé par Python Programming Time

Les compétences de programmation efficaces du langage Python rendent ceux d'entre nous qui ont étudié le c ou le c++ pendant quatre ans à l'université si excités que nous sommes enfin soulagés. Langage de haut niveau, s'il ne peut pas faire cela, pourquoi est-il si avancé ?

01 Variables d'échange

>>>a=3
>>>b=6
Copier après la connexion

Si vous souhaitez échanger des variables en C++, vous avez absolument besoin d'une variable vide. Mais python n'en a pas besoin, il n'a besoin que d'une seule ligne, tout le monde peut voir clairement

>>>a,b=b,a
>>>print(a)
>>>6
>>>ptint(b)
>>>5
Copier après la connexion

02 Compréhensions de dictionnaire et compréhensions d'ensembles

La plupart des programmeurs Python connaissent et ont utilisé les compréhensions de liste. Si vous n'êtes pas familier avec le concept de compréhension de liste, une compréhension de liste est une manière plus courte et plus concise de créer une liste.

>>> some_list = [1, 2, 3, 4, 5]
>>> another_list = [ x + 1 for x in some_list ]
>>> another_list
[2, 3, 4, 5, 6]
Copier après la connexion

Depuis python 3.1, nous pouvons utiliser la même syntaxe pour créer des ensembles et des listes de dictionnaires :

>>> # Set Comprehensions
>>> some_list = [1, 2, 3, 4, 5, 2, 5, 1, 4, 8]
>>> even_set = { x for x in some_list if x % 2 == 0 }
>>> even_set
set([8, 2, 4])
>>> # Dict Comprehensions
>>> d = { x: x % 2 == 0 for x in range(1, 11) }
>>> d
{1: False, 2: True, 3: False, 4: True, 5: False, 6: True, 7: False, 8: True, 9: False, 10: True}
Copier après la connexion

Dans le premier exemple, nous créons un ensemble avec des éléments uniques basés sur some_list, et dans l'ensemble ne contient que des nombres pairs. Dans l'exemple de la table du dictionnaire, nous avons créé une clé qui est un entier non répétitif compris entre 1 et 10, et la valeur est un type booléen qui indique si la clé est un nombre pair.

Une autre chose à noter ici est la représentation littérale des ensembles. Nous pouvons simplement créer un ensemble de cette façon :

>>> my_set = {1, 2, 1, 2, 3, 4}
>>> my_set
set([1, 2, 3, 4])
Copier après la connexion

sans utiliser la fonction intégrée set().

03 Utilisez Counter pour compter les objets lors du comptage

Cela semble évident, mais est souvent oublié. Compter quelque chose est une tâche courante pour la plupart des programmeurs, et dans la plupart des cas, ce n'est pas très difficile - voici quelques façons de le rendre plus facile.

La bibliothèque de collections de Python possède une sous-classe intégrée de la classe dict, spécialement conçue pour faire ce genre de chose :

>>> from collections import Counter
>>> c = Counter('hello world')
>>> c
Counter({'l': 3, 'o': 2, ' ': 1, 'e': 1, 'd': 1, 'h': 1, 'r': 1, 'w': 1})
>>> c.most_common(2)
[('l', 3), ('o', 2)]
Copier après la connexion

04 JSON imprimé magnifiquement

JSON est une très bonne forme de sérialisation de données, est largement utilisé par diverses API et services Web aujourd'hui. L'utilisation du traitement json intégré de Python peut rendre la chaîne JSON lisible dans une certaine mesure, mais lorsque vous rencontrez des données volumineuses, elle apparaît comme une longue ligne continue, difficile à visualiser pour l'œil humain.

Afin de rendre les données JSON plus conviviales, nous pouvons utiliser le paramètre indent pour générer un beau JSON. Ceci est particulièrement utile lors de la programmation ou de la connexion interactive dans la console :

>>> import json
>>> print(json.dumps(data))# No indention
{"status": "OK", "count": 2, "results": [{"age": 27, "name": "Oz", "lactose_intolerant": true}, {"age": 29, "name": "Joe", "lactose_intolerant": false}]}
>>> print(json.dumps(data, indent=2))# With indention
{
"status": "OK",
"count": 2,
"results": [
{
"age": 27,
"name": "Oz",
"lactose_intolerant": true
},
{
"age": 29,
"name": "Joe",
"lactose_intolerant": false
}
]
}
Copier après la connexion

De même, l'utilisation du module pprint intégré peut rendre tout le reste imprimé plus joliment.

05 Solve FizzBuzz

Il y a quelque temps, Jeff Atwood a fait la promotion d'un exercice de programmation simple appelé FizzBuzz. Le problème est cité comme suit :

Écrivez un programme qui imprime les nombres de 1 à 100. Les multiples de 3 impriment "Fizz" à remplacer. ce nombre, 5 Imprime "Buzz" pour les multiples de et "FizzBuzz" pour les nombres qui sont tous deux multiples de 3 et 5.

Voici une manière courte et intéressante de résoudre ce problème :

for x in range(1,101):
print"fizz"[x%3*len('fizz')::]+"buzz"[x%5*len('buzz')::] or x
Copier après la connexion

06 instruction if dans la ligne

print "Hello" if True else "World"
>>> Hello
Copier après la connexion

07 Connexion

La dernière méthode ci-dessous est très intéressante pour lier deux objets de types différents.

nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
print nfc + afc
>>> ['Packers', '49ers', 'Ravens', 'Patriots']
print str(1) + " world"
>>> 1 world
print `1` + " world"
>>> 1 world
print 1, "world"
>>> 1 world
print nfc, 1
>>> ['Packers', '49ers'] 1
Copier après la connexion

08 Comparaison numérique

C'est une très bonne méthode de raccourci que j'ai vue dans de nombreuses langues

x = 2
if 3 > x > 1:
 print x
>>> 2
if 1 < x > 0:
 print x
>>> 2
Copier après la connexion

09 Itérer deux listes en même temps

nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
for teama, teamb in zip(nfc, afc):
 print teama + " vs. " + teamb
>>> Packers vs. Ravens
>>> 49ers vs. Patriots
Copier après la connexion

10 Itération de liste indexée

teams = ["Packers", "49ers", "Ravens", "Patriots"]
for index, team in enumerate(teams):
print index, team
>>> 0 Packers
>>> 1 49ers
>>> 2 Ravens
>>> 3 Patriots
Copier après la connexion

11 Compréhension de liste

Étant donné une liste, nous pouvons appliquer la méthode de la liste paire :

numbers = [1,2,3,4,5,6]
even = []
for number in numbers:
if number%2 == 0:
even.append(number)
Copier après la connexion

se transforme en ce qui suit :

numbers = [1,2,3,4,5,6]
even = [number for number in numbers if number%2 == 0]
Copier après la connexion

12 La dérivation du dictionnaire

est similaire à la dérivation de la liste, le dictionnaire peut faire le même travail :

teams = ["Packers", "49ers", "Ravens", "Patriots"]
print {key: value for value, key in enumerate(teams)}
>>> {'49ers': 1, 'Ravens': 2, 'Patriots': 3, 'Packers': 0}
Copier après la connexion

13 Initialiser la liste Value

items = [0]*3
print items
>>> [0,0,0]
Copier après la connexion

14 Convertir la liste en chaîne

teams = ["Packers", "49ers", "Ravens", "Patriots"]
print ", ".join(teams)
>>> 'Packers, 49ers, Ravens, Patriots'
Copier après la connexion

15 Récupérer l'élément du dictionnaire

J'avoue que le code try/sauf n'est pas élégant, mais voici une méthode simple, essayez de trouver la clé dans le dictionnaire, si la clé correspondante on n'en trouve pas, la valeur sera définie sur sa valeur variable en utilisant le deuxième argument.

data = {'user': 1, 'name': 'Max', 'three': 4}
try:
 is_admin = data['admin']
except KeyError:
 is_admin = False
Copier après la connexion

Remplacer par ceci

data = {'user': 1, 'name': 'Max', 'three': 4}
is_admin = data.get('admin', False)
Copier après la connexion

16 Obtenez un sous-ensemble d'une liste

Parfois, vous n'avez besoin que de quelques éléments dans une liste, voici quelques façons d'obtenir un sous-ensemble d'une liste.

x = [1,2,3,4,5,6]
#前3个
print x[:3]
>>> [1,2,3]
#中间4个
print x[1:5]
>>> [2,3,4,5]
#最后3个
print x[3:]
>>> [4,5,6]
#奇数项
print x[::2]
>>> [1,3,5]
#偶数项
print x[1::2]
>>> [2,4,6]
Copier après la connexion

En plus des types de données intégrés à Python, le module de collecte comprend également des cas d'utilisation spéciaux. Counter est très pratique dans certaines situations. Si vous avez participé à la Facebook HackerCup de cette année, vous pourrez même découvrir son aspect pratique.

from collections import Counter
print Counter("hello")
>>> Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1})
Copier après la connexion

17 Outils d'itération

Comme la bibliothèque de collections, il existe également une bibliothèque appelée itertools, qui peut résoudre efficacement certains problèmes. Un des cas d'utilisation est de trouver toutes les combinaisons, ce qui peut vous indiquer toutes les combinaisons impossibles d'éléments dans un groupe

from itertools import combinations
teams = ["Packers", "49ers", "Ravens", "Patriots"]
for game in combinations(teams, 2):
print game
>>> ('Packers', '49ers')
>>> ('Packers', 'Ravens')
>>> ('Packers', 'Patriots')
>>> ('49ers', 'Ravens')
>>> ('49ers', 'Patriots')
>>> ('Ravens', 'Patriots')
Copier après la connexion

18 False == True

C'est une chose très intéressante par rapport aux techniques pratiques, en python, True et False sont des variables globales, donc :

False = True
if False:
 print "Hello"
else:
 print "World"
>>> Hello
Copier après la connexion

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!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal