Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
In Développement Dernière mise à jour : 13 juin 2023
Partager sur:
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

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() fonction

Vous pouvez également utiliser la range() fonction avec une valeur de pas facultative. Donc range (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

python-one-liners-1

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) Retour True.

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

python-one-liners-3

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() Retours True if c est un chiffre ; sinon ça revient False.
>>> 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

Créer un dictionnaire Python à la volée

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 C
    Auteur
    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
Merci à nos commanditaires
Plus de bonnes lectures sur le développement
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation de travail tout-en-un pour vous aider à gérer les projets, les tâches, le travail, les ventes, le CRM, les opérations, workflowset plus encore.
    Essayez Monday
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder