Wat is het verschil tussen lijsten en sets in Python?


Beste antwoord

Er zijn enkele significante verschillen:

  • Indexeren – een lijst kan worden geïndexeerd door een geheel getal (beginnend bij 0); een set kan niet worden geïndexeerd (er is geen concept van het eerste item in een set, behalve wanneer het wordt herhaald).
  • Slicing – een lijst kan worden gesplitst (met de [a: b] -notatie); een Python-set kan niet worden opgedeeld.
  • Inhoud – een lijst kan elke combinatie van gegevensitems bevatten; een set kan alleen die data-items bevatten die hashable zijn (dwz de hash () functie retourneert een waarde).
  • Duplicaten – een lijst kan dubbele data-items bevatten – er is geen limiet aan het aantal keren dat items van gelijke waarde verschijnen in de lijst; een set kan geen duplicaten bevatten.
  • Ordening – lijsten worden geordend, wat betekent dat ze de volgorde behouden zoals bepaald door het programma dat de lijst gebruikt; sets zijn niet geordend – er is geen concept van eerste, tweede enz. – en er is geen manier waarop een programmeur de volgorde kan bepalen waarin een set wordt herhaald, weergegeven of anderszins gepresenteerd. (Let op: ordenen is niet hetzelfde als gesorteerd worden, maar sets kunnen ook niet worden gesorteerd).
  • lidmaatschap – een lidmaatschapstest (de in-operator) op een lijst is een lineaire zoekopdracht van de eerste naar laatste ; een lidmaatschapstest voor een set is eerst gebaseerd op de hash () van de waarde waarnaar wordt gezocht. Het doorzoeken van een set is aanzienlijk efficiënter in vergelijking met een lijst van vergelijkbare grootte.
  • Andere mogelijkheden – lijsten hebben geen gedrag voor het maken van nieuwe lijsten op basis van overlappingen of verschillen tussen lijsten; sets aan de andere kant hebben een groot aantal bewerkingen (en methoden) voor het identificeren van de verschillen en overbezetting tussen sets.

Antwoord

Sets zijn gegevensstructuren, vergelijkbaar met lijsten of woordenboeken. Ze worden gemaakt met accolades of de functie set . Ze delen een aantal functionaliteit met lijsten, zoals het gebruik van in om te controleren of ze een bepaald item bevatten.

num\_set = {1, 2,3,4,5}

word\_set = set ([“spam”, “eggs”, “sausage”])

print (3 in num\_set)

print (“spam” niet in word\_set)

>> Waar

>>> Niet waar

Opmerking: om een ​​lege set te maken, moet u set () gebruiken, zoals {} maak een leeg woordenboek.

Sets verschillen op verschillende manieren van lijsten, maar delen verschillende lijstbewerkingen, zoals len . Ze zijn ongeordend, wat betekent dat ze “niet kunnen worden geïndexeerd. Ze mogen geen dubbele elementen bevatten. Vanwege de manier waarop ze worden opgeslagen, is het sneller om te controleren of een item deel uitmaakt van een set, in plaats van van een lijst. In plaats van append gebruik add om toe te voegen aan een set. De methode remove verwijdert een specifieke element uit een set; pop verwijdert een willekeurig element.

Sets kunnen worden gecombineerd met wiskundige bewerkingen. De union -operator | combineert twee sets om een ​​nieuwe te vormen met items in beide. De intersectie operator & haalt alleen items op in beide. Het verschil operator haalt items op in de eerste set maar niet in de tweede. De symmetrische verschil operator ^ haalt items op in beide sets, maar niet in beide.

Wanneer moet u een woordenboek gebruiken: – Wanneer u een logische associatie nodig heeft tussen een key: value paar. – Wanneer u snel uw gegevens moet opzoeken op basis van een aangepaste sleutel. – Wanneer uw gegevens voortdurend worden gewijzigd. Onthoud dat woordenboeken veranderlijk zijn. Wanneer u de andere typen moet gebruiken: – Gebruik lijsten als u een verzameling gegevens heeft die heeft geen willekeurige toegang nodig. Probeer lijsten te kiezen als u een eenvoudige, itereerbare verzameling nodig heeft die regelmatig wordt gewijzigd. – Gebruik een set als u uniekheid voor de elementen nodig heeft. – Gebruik tuples wanneer uw gegevens niet kunnen worden gewijzigd.

Ik hoop dat dit u zal helpen.

Veel plezier met coderen.

Nog een laatste ding als je dit leuk vindt, stem het dan op “zal me motiveren.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *