Vous cherchez à écrire du code élégant et Pythonic ? Voici une liste de one-liners Python utiles pour effectuer des tâches simples.
Si vous êtes un programmeur Python débutant, vous passerez du temps à comprendre les structures de données de base comme les listes et les chaînes. Et certaines opérations sur ces structures de données peuvent être réalisées grâce à des extraits de code concis d'une ligne.
En tant que programmeur, vous devez privilégier la lisibilité et la maintenabilité plutôt que de raccourcir le code. Mais Python, il est facile de proposer des lignes simples qui suivent les bonnes pratiques de codage.
Dans cet article, nous nous concentrerons sur les lignes simples pour les tâches simples de traitement de listes et de chaînes en Python.
Commençons!
Generate a List of Numbers
La façon la plus simple de générer une liste de nombres est d'utiliser la fonction range()
fonction. le range()
La fonction renvoie un objet de plage que vous pouvez convertir en liste. En utilisant range(num)
donnera la séquence 0, 1, 2,.., num-1.
>>> nums = list(range(10))
>>> nums
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
En savoir plus sur l'utilisation de
range()
fonctionVous pouvez également utiliser la
range()
fonction avec une valeur de pas facultative. Doncrange (start, end, step)
donnera la séquence start, start + step, start + 2*step, et ainsi de suite. La dernière valeur sera start + k*step tel que (début + k*étape) < fin , (début + (k+1)*étape) > fin.
Find the Max and Min Values in a List
Vous pouvez utiliser les fonctions max et min intégrées pour calculer respectivement les éléments maximum et minimum dans une liste.
>>> min_elt, max_elt = min(nums), max(nums)
>>> min_elt
0
>>> max_elt
9
📑 Remarque sur l'affectation multiple
Notez que nous avons attribué des valeurs aux deux
min_elt
,max_elt
dans une seule déclaration d'affectation. Python prend en charge une telle affectation multiple. Et cela peut être utile lors du déballage des itérables et de l'attribution de valeurs à plusieurs variables en même temps.
Remove Duplicates From a List

Une autre opération courante consiste à supprimer les doublons des listes Python. Cela est nécessaire lorsque vous devez travailler uniquement avec des valeurs uniques. La façon la plus simple de le faire est de convertir la liste en un ensemble.
Un ensemble est une structure de données intégrée dont les éléments sont tous uniques et hachables.
>>> nums1 = [2,4,7,9,7,10]
In nums1
, l'élément 7 apparaît deux fois. Le jeter dans un ensemble supprimera le doublon (ici, 7) nous laissant avec une liste de valeurs uniques.
Comme nous devons encore travailler avec la liste, nous allons reconvertir l'ensemble en liste. Cette opération peut être accomplie avec la ligne de code suivante :
>>> nums1 = list(set(nums1))
>>> nums1
[2, 4, 7, 9, 10]
📒 Pour en savoir plus sur d'autres techniques pour supprimer les doublons des listes Python, consultez .
Count Occurrences in a List
Pour compter le nombre de fois qu'un élément apparaît dans une liste, vous pouvez utiliser la fonction intégrée count()
méthode. list.count(elt)
renvoie le nombre de fois elt
se produit dans le list
.
>>> nums
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Ici, 7 apparaît une fois dans le nums
liste, donc le count()
méthode renvoie 1.
>>> nums.count(7)
1
Check if All Elements in the List Satisfy a Condition
Pour vérifier si tous les éléments d'une liste satisfont une condition, vous pouvez utiliser la fonction intégrée de Python all()
la fonction.
Les all()
La fonction prend un itérable comme argument et renvoie True si tous les éléments de l'itérable sont évalués à True
(ou sont véridiques).
Ici, nous aimerions vérifier si tous les éléments du nums2
la liste est impaire.
>>> nums2 = [3,4,7,11,21,67,12]
Nous pouvons utiliser la compréhension de liste pour construire une liste de booléens et nous pouvons transmettre cette liste comme argument au all()
la fonction.
Ici, num%2!=0
sera False
pour les éléments 4 et 12 qui sont pairs. Par conséquent, la liste des booléens construits à l'aide de l'expression de compréhension de liste contient False
(Et all(list)
Retours False
).
>>> all([num%2!=0 for num in nums2])
False
💡 Il est important de noter que
all([])
(all(any-empty-iterable
) RetourTrue
.
Check if Any Element in the List Satisfies a Condition
Pour vérifier si un élément d'une liste satisfait une condition, vous pouvez utiliser la commande any()
la fonction. any(some-list)
Retours True
si au moins un élément est évalué à True
.
>>> nums2 = [3,4,7,11,21,67,12]
Comme dans l'exemple précédent, nous utilisons la compréhension de liste pour obtenir une liste de booléens. Le nums
liste contient des nombres pairs. Alors le any()
la fonction retourne True
.
>>> any([num%2 for num in nums2])
True
Reverse a String
En Python, les chaînes sont immuables, donc lorsque vous souhaitez inverser une chaîne, vous ne pouvez obtenir qu'une copie inversée de la chaîne. Il existe deux approches courantes, qui peuvent toutes deux être écrites sous forme de one-liners Python, qui utilisent le découpage de chaînes et les fonctions intégrées.
Utilisation du découpage de chaîne
Le découpage de chaîne avec des valeurs négatives de step renvoie une tranche de la chaîne à partir de la fin. La syntaxe est string[start:stop:step]
. Alors, qu'est-ce que le réglage d'un pas de -1 et l'ignorance des indices de démarrage et d'arrêt renvoient?
Il renvoie une copie de la chaîne, en commençant par la fin de la chaîne, y compris chaque caractère.
>>> str1[::-1]
'olleh'
Utilisation de la fonction reverse()
Le intégré reversed()
La fonction renvoie un itérateur inverse sur une séquence.
>>> reversed(str1)
<reversed object at 0x008BAF70>
>>> for char in str1:
... print(char)
...
h
e
l
l
o
Vous pouvez l'utiliser conjointement avec le join()
méthode, comme indiqué :
>>> ''.join(reversed(str1))
'olleh'
Convert a String to a List of Characters

Supposons que nous souhaitions diviser une chaîne en une liste de caractères. Nous pouvons le faire en utilisant compréhension de la liste expression.
>>> str1 = 'hello'
Les compréhensions de liste sont l'un des one-liners les plus puissants de Python.
📒 En savoir plus sur lister les compréhensions en Python.
Nous parcourons la chaîne et collectons chaque caractère.
>>> chars = [char for char in str1]
>>> chars
['h', 'e', 'l', 'l', 'o']
Pour diviser une chaîne en une liste de caractères, vous pouvez également utiliser la list()
constructeur:
>>> str1 = 'hello'
>>> chars = list(str1)
>>> chars
['h', 'e', 'l', 'l', 'o']
Pour diviser une chaîne plus longue en une liste de chaînes à chaque occurrence d'espace, vous pouvez utiliser le split()
méthode.
>>> str2 = 'hello world'
>>> str2.split()
['hello', 'world']
Extract Digits From a String
Nous avons déjà vu comment utiliser la compréhension de liste pour diviser une chaîne en une liste de caractères. Dans cet exemple, nous avons collecté tous les caractères en parcourant la chaîne.
Ici, nous devons parcourir la chaîne et ne collecter que les chiffres. Alors, comment faisons-nous cela?
- Nous pouvons définir la condition de filtrage dans l'expression de compréhension de liste à l'aide de la
isdigit()
méthode. c.isdigit()
RetoursTrue
ifc
est un chiffre ; sinon ça revientFalse
.
>>> str3 = 'python3'
>>> digits = [c for c in str3 if c.isdigit()]
>>> digits
['3']
Check if a String Starts with a Specific Substring
Pour vérifier si une chaîne commence par une sous-chaîne spécifique, vous pouvez utiliser le startswith()
méthode de la chaîne. str1.startswith(substring)
Retours True
if str1
commence avec substring
. Sinon, il revient False
.
Voici quelques exemples:
>>> str4 = 'coding'
>>> str4.startswith('co')
True
>>> str5 = 'python'
>>> str5.startswith('co')
False
Check if a String Ends with a Specific Substring
Comme vous l'avez peut-être deviné, pour vérifier si une chaîne se termine par une sous-chaîne donnée, vous pouvez utiliser le endswith()
méthode.
>>> str5 = 'python'
>>> str5.endswith('on')
True
Nous pouvons également utiliser la méthode de chaîne dans une expression de compréhension de liste pour obtenir ends_with
, une liste de booléens.
>>> strs = ['python','neon','nano','silicon']
>>> ends_with = [str.endswith('on') for str in strs]
>>> ends_with
[True, True, False, True]
Join Elements of a List Into a String
Nous avons déjà vu comment diviser une chaîne en une liste de caractères. Maintenant, comment faisons-nous l'opération inverse de joindre les éléments d'une liste dans une chaîne ?
Pour ce faire, vous pouvez utiliser le join()
méthode de chaîne avec la syntaxe : separator.join(some-list)
.
Nous voudrions seulement combiner les éléments de la liste en une seule chaîne ; nous n'avons pas besoin de séparateur. Nous définissons donc le séparateur sur une chaîne vide.
>>> list_1 = ['p','y','t','h','o','n','3']
>>> ''.join(list_1)
'python3'
Create a Python Dictionary

Tout comme les compréhensions de liste peuvent nous aider à construire de nouvelles listes à partir d'itérables existants, les compréhensions de dictionnaire peuvent nous aider à construire de nouveaux dictionnaires à partir d'itérables existants.
Les compréhensions de dictionnaire Python sont de puissants one-liners qui peuvent aider à construire aider à créer un dictionnaire à la volée.
Ici nous avons names
qui est une liste de chaînes.
>>> names = ['Joe','Amy','Jake','Florence']
Nous créons names_d
, un dictionnaire contenant des chaînes de noms comme clés et les longueurs des chaînes comme valeur.
>>> names_d = {name:len(name) for name in names}
>>> names_d
{'Joe': 3, 'Amy': 3, 'Jake': 4, 'Florence': 8}
Conditionally Assign Values to Variables
Parfois, vous devrez peut-être attribuer des valeurs à des variables en fonction d'une condition spécifique.
Par exemple, vous pouvez lire dans l'entrée de l'utilisateur, par exemple, l'âge de l'individu. Et en fonction de la valeur d'entrée, vous pouvez décider s'ils sont autorisés ou non à assister à une fête.
Pour effectuer cette affectation conditionnelle en Python, vous pouvez écrire la ligne suivante en utilisant l'opérateur ternaire.
>>> age = 21
>>> allowed = True if age >= 18 else False
>>> allowed
True
🔖 En savoir plus sur le opérateur ternaire en Python.
Generate All Permutations
La permutation fait référence à un arrangement possible d'éléments dans un groupe. S'il y a n éléments uniques dans un groupe, il y a n ! manières possibles de les organiser - et donc, n! permutations.
Utilisons la liste suivante letters
:
>>> letters = ['a','b','c']
Vous pouvez utiliser permutations
du itertools module pour générer toutes les permutations possibles de l'itérable donné.
>>> letters_p = permutations(letters)
>>> letters_p
<itertools.permutations object at 0x0127AF50>
Comme on le voit, en utilisant permutations(iterable)
renvoie un objet de permutation que nous pouvons parcourir en boucle à l'aide d'un pour la boucle:
>>> for p in letters_p:
... print(p)
...
('a', 'b', 'c')
('a', 'c', 'b')
('b', 'a', 'c')
('b', 'c', 'a')
('c', 'a', 'b')
('c', 'b', 'a')
Mais nous pouvons le réécrire sous la forme d'une expression d'une ligne en transformant l'objet de permutation en une liste :
>>> letters_p = list(permutations(letters))
>>> letters_p
[('a', 'b', 'c'), ('a', 'c', 'b'), ('b', 'a', 'c'), ('b', 'c', 'a'), ('c', 'a', 'b'), ('c', 'b', 'a')]
Ici, il y a trois éléments uniques, et il y a 3!=6 permutations possibles.
Generate Subsets of a List
Parfois, vous devrez peut-être construire tous les sous-ensembles possibles d'une taille particulière à partir d'une liste ou d'autres itérables. Utilisons le letters
liste et récupère toutes les sous-listes de taille 2.
Pour ce faire, nous pouvons utiliser combinations
à partir de itertools
module, comme ceci :
>>> from itertools import combinations
>>> letters_2 = list(combinations(letters,2))
>>> letters_2
[('a', 'b'), ('a', 'c'), ('b', 'c')]
Conclusion
Dans ce didacticiel, nous avons examiné les one-liners Python utiles pour effectuer des opérations courantes sur des listes et des chaînes. Nous avons également appris des one-liners comme les compréhensions de listes et de dictionnaires Python et comment les utiliser en conjonction avec des fonctions intégrées pour effectuer les tâches souhaitées.
Comme prochaine étape, consultez cette liste de projets Python adaptés aux débutants.
-
Bala Priya est un développeur et rédacteur technique indien avec plus de trois ans d'expérience dans le domaine de la rédaction de contenu technique. Elle partage son apprentissage avec la communauté des développeurs en créant des didacticiels techniques, des guides pratiques, etc. lire la suite