Je kunt een lijst in Python omzetten naar een set.
Afbeelding tegoed: Poike/iStock/GettyImages
Lijsten en sets in Python bevatten beide groepen items, maar er zijn belangrijke verschillen tussen de twee. Sets zijn met name handig voor het uitvoeren van een breed scala aan bewerkingen, zoals vakbonden en kruispunten, terwijl lijsten: minder wiskundige bewerkingen maar zijn handig voor het zoeken naar specifieke items - vooral met duplicaten - en organiseren gegevens. Om vele redenen moet u mogelijk een lijst naar een set in Python converteren, en er is een eenvoudige functie die u hiervoor kunt gebruiken.
Python-lijsten en -sets uitgelegd
Het belangrijkste verschil tussen een lijst en een set in Python is dat een lijst dubbele elementen kan bevatten, terwijl een set alleen unieke elementen bevat. Als u bijvoorbeeld een lijst met testscores heeft gedefinieerd als 'scores=[14, 20, 13, 20, 15]', wordt de lijst vertelt je elke waarde, maar als je het omzet in een set, verwijdert het het duplicaat en laat {14, 20, 13, 15}.
Video van de dag
Een ander verschil is dat vierkante haken worden gebruikt voor lijsten, terwijl accolades worden gebruikt voor sets. De zaken worden een beetje gecompliceerd door het feit dat een Python-woordenboek ook accolades gebruikt, maar daar bestaat elk item uit de waarde zelf en een "sleutel" gescheiden door een dubbele punt.
Het is belangrijk om te onthouden dat je strings, integers, floats of andere objecten kunt gebruiken als onderdeel van een set of een lijst, en deze kunnen ook worden gemengd in dezelfde set of lijst. Dus, net zoals je een reeks getallen in Python kunt hebben, kun je ook een Python-reeks tekenreeksen maken.
Een lijst omzetten in een set
Het proces voor het converteren van een lijst naar een set in Python is eenvoudig. Eerst definieert u de lijst op een manier die logisch is voor de informatie die erin staat. Stel dat u bijvoorbeeld een lijst met namen wilt definiëren, dan kunt u schrijven: namen=['Lee', 'Mike', 'Jamie', 'Mike', 'Sarah'] let op de vierkante haken, aanhalingstekens rond de tekenreeksen (de namen) en komma's die elk item scheiden.
Om deze lijst om te zetten in een set, gebruik je het commando set(), waar u de naam van de lijst die u wilt converteren tussen haakjes plaatst. Dus in dit geval kun je schrijven stel (namen) om de namen in de lijst om te zetten in een set, en u kunt er een variabele zoals "unieke namen" aan toewijzen en het resultaat weergeven met afdrukken (unieke namen), wat functioneel equivalent is aan print (set (namen)) maar netter. U bevestigt dat dit correct is gedaan door op te merken dat het resultaat accolades gebruikt en dat "Mike" slechts één keer wordt opgenomen.
De hele code ziet er als volgt uit:
namen=['Lee', 'Mike', 'Jamie', 'Mike', 'Sarah']
uniquenames=set (namen)
print('Unieke namen: ', unieke namen)
In dit geval is "Unieke namen:" toegevoegd aan de uitvoer voor presentatiedoeleinden.
Python: instellen op lijstconversie
U kunt dezelfde conversie ook in de tegenovergestelde richting uitvoeren, en het proces is in principe hetzelfde, behalve dat u de gebruikt lijst() commando op een set in plaats van andersom. Dit betekent dat je om te beginnen een set nodig hebt, die je eenvoudig kunt definiëren door een variabele zoals "big_set" te kiezen en vervolgens de inhoud toe te voegen, gescheiden door komma's en tussen accolades. Je zou kunnen schrijven big_set={1, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 17} om een reeks gehele getallen of andere waarden te definiëren.
Om dit in een lijst om te zetten, definieert u een variabele (zeg "big_list") en gebruikt u de lijst() commando, dus je typt zoiets als big_list=lijst (big_set) en toen afdrukken (grote_lijst) om het resultaat weer te geven. De volledige code is dus:
big_set={1, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 17}
big_list=lijst (big_set)
afdrukken (grote_lijst)
Dit geval geeft de lijst geen naam, dus het retourneert alleen de lijst. Houd er rekening mee dat als u een lijst converteert naar een set en vervolgens weer terug, u alle herhaalde waarden bij de eerste conversie verliest en niet meer terugkomt.