Supposons que vous soyez novice en science des données ou en programmation. Vous entendez probablement souvent des gens recommander Python comme premier langage de programmation à apprendre car il a une syntaxe simple à comprendre et une meilleure lisibilité du code. Ensemble, ces fonctionnalités rendent Python beaucoup plus facile à apprendre pour les personnes sans expérience préalable en programmation.
Python est l’un des langages de programmation les plus utilisés aujourd’hui avec des applications dans divers domaines, notamment la science des données, l’informatique scientifique, le développement Web, le développement de jeux et la création d’interfaces graphiques de bureau. Python a acquis cette popularité pour son utilité dans divers domaines, sa productivité par rapport à d’autres langages de programmation comme Java, C et C++, et la façon dont ses commandes ressemblent à l’anglais.
Lorsque vous utilisez Python tous les jours pour résoudre des défis, développer des algorithmes et créer des applications, vous vous retrouverez à répéter certaines tâches encore et encore. C’est pourquoi c’est une bonne idée d’avoir des extraits de code prêts pour les tâches courantes.
Il existe de nombreux extraits de code pour Python classés par domaine, mais pour cet article, je vais me concentrer sur les extraits à usage général que vous pouvez utiliser pour n’importe quelle application.
13 extraits Python pour votre boîte à outils
- Fusionner deux listes dans un dictionnaire
- Fusionner deux listes ou plus dans une liste de listes
- Trier une liste de dictionnaires
- Trier une liste de chaînes
- Trier une liste en fonction d’une autre liste
- Mapper une liste dans un dictionnaire
- Fusionner deux ou plusieurs dictionnaires
- Inverser un dictionnaire
- Utilisation de chaînes f
- Vérification des sous-chaînes
- Obtenir la taille d’une chaîne en octets
- Vérifier si un fichier existe
- Analyser une feuille de calcul
Extraits de liste
Nous commencerons par quelques extraits sur la structure de données la plus utilisée de Python : les listes.
1. Fusionner deux listes dans un dictionnaire
Supposons que nous ayons deux listes en Python et que nous souhaitions les fusionner sous la forme d’un dictionnaire, où les éléments d’une liste agissent comme les clés du dictionnaire et l’autre comme les valeurs. C’est un problème fréquent souvent rencontré lors de l’écriture de code en Python.
Pour résoudre ce problème, nous devons prendre en compte quelques restrictions, telles que la taille des deux listes, les types d’éléments dans les deux listes et s’il y a des éléments répétés dans celles-ci, en particulier dans celle que nous utiliserons comme clés. Nous pouvons surmonter cela avec l’utilisation de fonctions intégrées comme zip.
keys_list = ['A', 'B', 'C']
values_list = ['blue', 'red', 'bold']
#There are 3 ways to convert these two lists into a dictionary
#1- Using Python's zip, dict functionz
dict_method_1 = dict(zip(keys_list, values_list))
#2- Using the zip function with dictionary comprehensions
dict_method_2 = {key:value for key, value in zip(keys_list, values_list)}
#3- Using the zip function with a loop
items_tuples = zip(keys_list, values_list)
dict_method_3 = {}
for key, value in items_tuples:
if key in dict_method_3:
pass # To avoid repeating keys.
else:
dict_method_3[key] = value
2. Fusionner deux listes ou plus dans une liste de listes
Une autre tâche fréquente est lorsque nous avons deux listes ou plus, et que nous voulons toutes les rassembler dans une grande liste de listes, où tous les premiers éléments de la plus petite liste forment la première liste de la plus grande liste.
Par exemple, si j’ai 4 listes [1,2,3]
, [‘a’,’b’,’c’]
, [‘h’,’e’,’y’]
et [4,5,6]
et nous voulons faire une nouvelle liste de ces quatre listes ; ce sera [[1,’a’,’h’,4]
, [2,’b’,’e’,5]
, [3,’c’,’y’,6]]
.
def merge(*args, missing_val = None):
#missing_val will be used when one of the smaller lists is shorter tham the others.
#Get the maximum length within the smaller lists.
max_length = max([len(lst) for lst in args])
outList = []
for i in range(max_length):
result.append([args[k][i] if i < len(args[k]) else missing_val for k in range(len(args))])
return outList
3. Trier une liste de dictionnaires
Le prochain ensemble de tâches de liste quotidiennes est le tri. Selon le type de données des éléments inclus dans les listes, nous suivrons une manière légèrement différente de les trier. Commençons d'abord par trier une liste de dictionnaires.
dicts_lists = [
{
"Name": "James",
"Age": 20,
},
{
"Name": "May",
"Age": 14,
},
{
"Name": "Katy",
"Age": 23,
}
]
#There are different ways to sort that list
#1- Using the sort/ sorted function based on the age
dicts_lists.sort(key=lambda item: item.get("Age"))
#2- Using itemgetter module based on name
from operator import itemgetter
f = itemgetter('Name')
dicts_lists.sort(key=f)
4. Trier une liste de chaînes
Nous sommes souvent confrontés à des listes contenant des chaînes, et nous devons trier ces listes par ordre alphabétique, par longueur ou tout autre facteur que nous voulons (ou dont notre application a besoin).
Maintenant, je dois mentionner que ce sont des moyens simples de trier une liste de chaînes, mais vous devrez parfois implémenter votre algorithme de tri pour résoudre ce problème.
my_list = ["blue", "red", "green"]
#1- Using sort or srted directly or with specifc keys
my_list.sort() #sorts alphabetically or in an ascending order for numeric data
my_list = sorted(my_list, key=len) #sorts the list based on the length of the strings from shortest to longest.
# You can use reverse=True to flip the order
#2- Using locale and functools
import locale
from functools import cmp_to_key
my_list = sorted(my_list, key=cmp_to_key(locale.strcoll))
5. Trier une liste en fonction d'une autre liste
Parfois, nous pouvons vouloir ou devoir utiliser une liste pour en trier une autre. Donc, nous aurons une liste de nombres (les index) et une liste que je veux trier en utilisant ces index.
a = ['blue', 'green', 'orange', 'purple', 'yellow']
b = [3, 2, 5, 4, 1]
#Use list comprehensions to sort these lists
sortedList = [val for (_, val) in sorted(zip(b, a), key=lambda x:
x[0])]
6. Mapper une liste dans un dictionnaire
La dernière tâche liée à la liste que nous examinerons dans cet article est si nous recevons une liste et la mappons dans un dictionnaire. C'est-à-dire que je veux convertir ma liste en un dictionnaire avec des touches numériques.
mylist = ['blue', 'orange', 'green']
#Map the list into a dict using the map, zip and dict functions
mapped_dict = dict(zip(itr, map(fn, itr)))
Extraits de dictionnaire
Le prochain type de données que nous aborderons est celui des dictionnaires.
7. Fusion de deux dictionnaires ou plus
Supposons que nous ayons deux dictionnaires ou plus et que nous voulions tous les fusionner en un seul dictionnaire avec des clés uniques. Voici à quoi cela ressemblera :
from collections import defaultdict
#merge two or more dicts using the collections module
def merge_dicts(*dicts):
mdict = defaultdict(list)
for d in dicts:
for key in d:
mdict[key].append(d[key])
return dict(mdict)
8. Inverser un dictionnaire
Une tâche de dictionnaire courante consiste à inverser les clés et les valeurs d'un dictionnaire. Ainsi, les clés deviendront les valeurs, et les valeurs deviendront les clés.
Lorsque nous faisons cela, nous devons nous assurer que nous n'avons pas de clés en double. Alors que les valeurs peuvent être répétées, les clés ne le peuvent pas. Assurez-vous également que toutes les nouvelles clés sont hachables.
my_dict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
#Invert the dictionary based on its content
#1- If we know all values are unique.
my_inverted_dict = dict(map(reversed, my_dict.items()))
#2- If non-unique values exist
from collections import defaultdict
my_inverted_dict = defaultdict(list)
{my_inverted_dict[v].append(k) for k, v in my_dict.items()}
#3- If any of the values are not hashable
my_dict = {value: key for key in my_inverted_dict for value in my_inverted_dict[key]}
Extraits de chaîne
9. Utiliser des cordes F
Le formatage d'une chaîne est probablement la tâche numéro un que vous devrez effectuer presque quotidiennement. Il existe différentes manières de formater des chaînes en Python ; mon préféré utilise des chaînes f.
#Formatting strings with f string.
str_val="books"
num_val = 15
print(f'{num_val} {str_val}') # 15 books
print(f'{num_val % 2 = }') # 1
print(f'{str_val!r}') # books
#Dealing with floats
price_val = 5.18362
print(f'{price_val:.2f}') # 5.18
#Formatting dates
from datetime import datetime;
date_val = datetime.utcnow()
print(f'{date_val=:%Y-%m-%d}') # date_val=2021-09-24
10. Vérification des sous-chaînes
L'une des tâches les plus courantes que j'ai dû effectuer consiste à vérifier si une chaîne se trouve dans une liste de chaînes.
addresses = ["123 Elm Street", "531 Oak Street", "678 Maple Street"]
street = "Elm Street"
#The top 2 methods to check if street in any of the items in the addresses list
#1- Using the find method
for address in addresses:
if address.find(street) >= 0:
print(address)
#2- Using the "in" keyword
for address in addresses:
if street in address:
print(address)
11. Obtenir la taille d'une chaîne en octets
Parfois, en particulier lors de la création d'applications à mémoire critique, nous devons savoir combien de mémoire nos chaînes utilisent. Heureusement, nous pouvons le faire rapidement avec une seule ligne de code.
str1 = "hello"
str2 = "😀"
def str_size(s):
return len(s.encode('utf-8'))
str_size(str1)
str_size(str2)
Opérations d'entrée/sortie
12. Vérifier si un fichier existe
Les data scientists ont souvent besoin de lire des données à partir de fichiers ou d'y écrire des données. Pour ce faire, nous devons vérifier si un fichier existe ou non afin que notre code ne se termine pas par une erreur.
#Checking if a file exists in two ways
#1- Using the OS module
import os
exists = os.path.isfile('/path/to/file')
#2- Use the pathlib module for a better performance
from pathlib import Path
config = Path('/path/to/file')
if config.is_file():
pass
13. Analyser une feuille de calcul
Une autre interaction courante avec les fichiers consiste à analyser les données d'une feuille de calcul. Heureusement, nous avons le module CSV pour nous aider à effectuer cette tâche avec efficacité.
import csv
csv_mapping_list = []
with open("/path/to/data.csv") as my_data:
csv_reader = csv.reader(my_data, delimiter=",")
line_count = 0
for line in csv_reader:
if line_count == 0:
header = line
else:
row_dict = {key: value for key, value in zip(header, line)}
csv_mapping_list.append(row_dict)
line_count += 1
Plats à emporter
En tant que professeur d'informatique, je rencontre des personnes de différents groupes d'âge qui souhaitent apprendre à programmer. Ils viennent généralement me voir avec un langage de programmation en tête ou un domaine d'application dans lequel ils souhaitent se lancer. Mes élèves les plus jeunes veulent souvent juste apprendre à coder, tandis que les élèves plus âgés veulent se lancer dans un domaine spécifique comme la science des données ou le développement Web.
Quand j'enseigne la programmation, j'aime rendre les choses simples. J'ai découvert que si j'enseigne aux étudiants les bases et que je les aide avec les éléments de base, ils seront en mesure de développer des projets plus importants à l'aide de ces outils fondamentaux. C'est à ce moment-là que j'ai commencé à collecter des extraits de code Python utiles à partager avec mes étudiants et à utiliser dans mon propre travail.
Vous pouvez maintenant ajouter ces 13 extraits de code à votre propre base de données d'extraits (ou en créer une !). Ces extraits sont simples, courts et efficaces. Vous finirez par en utiliser au moins un dans n'importe quel projet Python, quel que soit le domaine d'application dans lequel vous travaillez. S'amuser!
.