Python >> Tutoriel Python >  >> Python

Comment intersecter deux ensembles en Python ?

Un ensemble est une collection non ordonnée d'éléments. Chaque élément peut exister au plus une fois dans un ensemble. Il n'y a pas d'éléments en double.

set_a = {1, 2, 3}
set_b = {2, 3, 4}
# Goal Intersect: {2, 3}

Objectif :Comment croiser des ensembles Python ?

Solution :set_a & set_b

L'opérateur d'intersection d'ensemble set_a & set_b croise deux ensembles, c'est-à-dire crée un nouvel ensemble avec des éléments qui existent dans les deux ensembles set_a et set_b .

set_a = {1, 2, 3}
set_b = {2, 3, 4}
print(set_a & set_b)
# Set Intersection: {2, 3}

Une alternative moins concise est la méthode set set_a.intersection(set_b) qui crée également un nouvel ensemble en coupant les deux ensembles.

Définir le puzzle d'intersection Python

Voici une énigme concernant l'intersection d'ensembles qui améliorera vos compétences en Python :

# cancer-fighting foods
cf = {"basil",
      "berries",
      "broccoli",
      "curcume",
      "garlic",
      "kale",
      "oranges",
      "seeds",
      "spinach",
      "sprouts"}

# blood pressure reducing foods
bf = {"bananas",
      "berries",
      "fish",
      "garlic",
      "kale",
      "red beets",
      "salmon",
      "seeds",
      "spinach",
      "yogurt"}

# How many foods fight cancer & reduce blood pressure?
print(len(cf & bf))

Réflexion :Quel est le résultat de ce puzzle ?

Vous pouvez le résoudre sur notre application Python interactive ici :

Ce puzzle concerne deux éléments de connaissances de base.

  • La première connaissance de base est ce que votre mère vous a toujours dit :les légumes et les fruits sont bons pour la santé. Mangez 5 portions de légumes et de fruits par jour ou plus et vous vivrez plus longtemps.
  • La deuxième connaissance de base est aussi profane que la création et la manipulation d'ensembles en Python. Vous avez besoin d'ensembles pour toutes sortes d'algorithmes et d'extraits de code pour conserver les données.

Le seul grand avantage des ensembles par rapport aux listes est que vérifier si un élément est dans l'ensemble (opération de confinement) est beaucoup plus rapide. Quelle que soit la taille de l'ensemble, le confinement ne nécessite qu'un temps constant. En revanche, l'opération de confinement des listes nécessite de vérifier chaque élément de la liste. Cela devient très lent pour les grandes listes.

Dans ce casse-tête, nous voulons savoir combien d'aliments combattent à la fois le cancer et réduisent la tension artérielle. Cela peut être fait avec l'intersection définie. L'intersection de deux ensembles A et B crée un nouvel ensemble avec tous les éléments contenus dans les deux ensembles A et B.

Nous pouvons soit utiliser le intersection() fonction ou le '&' opérateur pour croiser deux ensembles Python. Dans le puzzle se trouvent cinq aliments qui combattent le cancer et réduisent la tension artérielle :les baies, l'ail, les épinards, le chou frisé et les graines.

L'étude détaillée des ensembles Python fera de vous un meilleur codeur. Période. Lisez ce tutoriel sur les ensembles Python pour en savoir plus !

Vidéo associée :Définir l'union