web-dev-qa-db-fra.com

Quelle est la différence entre les ensembles et les listes en Python?

La seule différence entre les ensembles et les listes dans Python le fait que vous pouvez utiliser les fonctions d'union, d'intersection, de différence et de différence symétrique pour comparer deux ensembles? Pourquoi ces fonctions ne peuvent-elles pas simplement être appliquées à Dans quelles situations les ensembles sont-ils plus utiles que les listes?

37
user1588869

Il y a une énorme différence.

  1. Les ensembles ne peuvent pas contenir de doublons
  2. Les ensembles ne sont pas classés
  3. Afin de trouver un élément dans un ensemble, une recherche de hachage est utilisée (c'est pourquoi les ensembles ne sont pas ordonnés). Cela rend __contains__ (Opérateur in) beaucoup plus efficace pour les ensembles que pour les listes.
  4. Les ensembles ne peuvent contenir que des articles lavables (voir # 3). Si vous essayez: set(([1],[2])) vous obtiendrez un TypeError.

Dans les applications pratiques, les listes sont très agréables à trier et à commander, tandis que les ensembles sont agréables à utiliser lorsque vous ne voulez pas de doublons et que vous ne vous souciez pas de l'ordre.

Notez également que si vous ne vous souciez pas de la commande, etc., vous pouvez utiliser

new_set = myset.intersection(mylist)

pour obtenir l'intersection entre un set et un list.

73
mgilson

sets - Collections non ordonnées d'éléments uniques

lists - collections d'éléments ordonnées

sets vous permet d'effectuer des opérations telles que intersection, union, difference et symmetric difference, c'est-à-dire les opérations de la théorie des ensembles mathématiques. Les ensembles ne permettent pas l'indexation et sont implémentés sur les tables de hachage.

lists sont vraiment des tableaux de longueur variable, pas des listes liées de style LISP. Dans les listes, les éléments sont accessibles par des indices.

7
Ashwini Chaudhary

Définir

Un ensemble est une collection qui n'est pas ordonnée et non indexée et qui n'autorise pas les doublons. En Python, les ensembles sont écrits avec des accolades.

# example set
newset = {"one", "two", "three"}
  • Vous ne pouvez pas accéder aux éléments d'un ensemble en faisant référence à un index
  • Les ensembles sont mutables
  • Ils sont utiles pour vérifier les doublons

Liste

Une liste est une collection qui est commandée et modifiable. Dans Python les listes sont écrites entre crochets.

# example list
newlist =["one", "two", "three"]
  • Vous accédez aux éléments de la liste en vous référant au numéro d'index
  • Les listes sont modifiables.
4
P.singh

Quelques autres différences sont:

  1. La liste peut être en 2D, contrairement à un ensemble.
  2. Au fur et à mesure que les listes sont ordonnées (IE. Ont un numéro de série), les listes sont relativement lentes à exécuter tandis que les ensembles sont rapides.
  3. Liste dans python est comme un tableau de Java ou c.
  4. L'impression d'un jeu fournit presque toujours une séquence de sortie différente.
  5. Définir les utilisations hash function pour trouver un élément alors que list est un tableau. Ainsi, trouver un élément dans Set est plus rapide que dans list.
3
BlackBeard

L'ensemble représente une collection d'éléments distincts. En python, les ensembles sont principalement utilisés pour deux raisons (Livre: Data Science from Scratch, Joel Gruce):

  1. Pour un fonctionnement plus rapide: in est une opération très rapide sur les postes. Si nous avons une grande collection d'éléments et si nous souhaitons effectuer un test d'appartenance, dans ce cas, il convient d'utiliser set au lieu d'une liste.

  2. Pour rechercher un élément distinct dans une collection. Les programmeurs utilisent des ensembles beaucoup moins fréquemment que les dict et les listes.

3
Sayali Sonawane