In Python zijn lijsten ver­an­der­lij­ke objecten, terwijl strings on­ver­an­der­lijk zijn. Door een string om te zetten in een lijst, kun je af­zon­der­lij­ke tekens of delen van de string wijzigen, toevoegen of ver­wij­de­ren.

Op welke ver­schil­len­de manieren kunnen Python-strings worden omgezet naar lijsten?

Wanneer u een te­ken­reeks omzet in een lijst, wijzigt u de ge­ge­vens­struc­tuur zodat deze lijst­be­wer­kin­gen kan on­der­steu­nen. Dit vergroot op zijn beurt het aantal be­schik­ba­re opties voor ge­ge­vens­ma­ni­pu­la­tie.

Hier zijn enkele van de meest voor­ko­men­de methoden om een te­ken­reeks om te zetten in een lijst:

split()

De Python-methode split splitst een te­ken­reeks op basis van een specifiek schei­dings­te­ken of patroon in een lijst met sub­te­ken­reek­sen. De algemene syntaxis voor deze methode is:

string.split(sep=None, maxsplit=-1)
python
  • string: Dit is de oor­spron­ke­lij­ke te­ken­reeks.
  • sep (optioneel): Dit is het schei­dings­te­ken waar de te­ken­reeks moet worden gesplitst. Als er geen schei­dings­te­ken wordt opgegeven, splitst de methode de te­ken­reeks standaard op spaties.
  • maxsplit (optioneel): maxsplit de­fi­ni­eert het maximale aantal split­sin­gen dat moet worden uit­ge­voerd. Als u wilt dat Python alle mogelijke split­sin­gen uitvoert, kunt u de parameter instellen op -1 of leeg laten.

Een voorbeeld:

text = "blue,green,yellow,red"
print(f"List of colors = {text.split(',')}")
python

leidt tot de uitvoer:

List of colors = ['blue', 'green', 'yellow', 'red']
python

f-strings zijn een Python-string­for­maat dat elke uit­druk­king als plaats­hou­der tussen accolades ac­cep­teert. Met dit formaat kunnen we het resultaat van de functie split() com­bi­ne­ren met de string "List of colors = ".

list()

De Python-functie list() wordt gebruikt om ver­schil­len­de ge­ge­vens­struc­tu­ren, waaronder strings, om te zetten in lijsten. Als u een string als argument doorgeeft aan de list(), wordt elke letter of elk teken van de string als een af­zon­der­lijk element op­ge­sla­gen in de re­sul­te­ren­de lijst.

text = "Hello"
char_list = list(text)
print(char_list)
# Output: ['H', 'e', 'l', 'l', 'o']
python

Lijst­be­grip

Lijst­be­grip is een compacte manier om lijsten te maken door lussen en voor­waar­den in één regel te com­bi­ne­ren.

text = "Hello World"
char_list = [char for char in text]
print(char_list)
# Output: ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
python

In dit voorbeeld beginnen we met de te­ken­reeks "Hello World" en maken we een lijst die wordt op­ge­sla­gen in char_list. De lijst­com­pre­hen­si­on doorloopt elke letter (char) in de te­ken­reeks text en voegt deze als een enkel element toe aan de lijst char_list.

String slicing

String slicing is een andere methode om Python-strings om te zetten in lijsten. Het haalt delen van een string (sub­strings) eruit en slaat ze op als elementen in een lijst.

substring_list = string[start:stop:step]
python
  • start: Dit is de index waar het knippen begint. De substring begint met het teken op deze positie.
  • stop: Dit is de index waar het knippen eindigt. De reeks omvat alle tekens tot en met, maar exclusief het teken op deze positie.
  • step (optioneel): Dit is de afstand tussen elk ge­se­lec­teerd teken wanneer het knippen wordt uit­ge­voerd. Het geeft aan hoeveel tekens er tussen elk ge­se­lec­teerd teken moeten worden over­ge­sla­gen.

convert(string) is een door de gebruiker ge­de­fi­ni­eer­de functie die een te­ken­reeks omzet in een lijst met tekens. Wanneer de uit­druk­king list1[:0] = string wordt uit­ge­voerd, worden de af­zon­der­lij­ke tekens van de te­ken­reeks ingevoegd in de lege lijst list1.

def convert(string):
    list1 = []
    list1[:0] = string
    return list1
str1 = "xyz"
print(convert(str1))
# Output: ['x', 'y', 'z']
python

re.findall()

Je kunt de functie re.findall() gebruiken om Python-strings om te zetten in lijsten door alle voor­ko­mens van een reguliere expressie in een string te lo­ka­li­se­ren en ze als een lijst op te halen.

import re
text = "123 and 456 are numbers."
numbers_list = re.findall(r'\d+', text)
print(numbers_list)
# Output: ['123', '456']
python

De reguliere expressie r'\d+' zoekt naar een of meer op­een­vol­gen­de cijfers in een tekst en geeft deze weer als af­zon­der­lij­ke elementen in een lijst.

enumerate()

De functie enumerate() in Python haalt zowel de index als de waarde van elk element in een iterabele ge­ge­vens­struc­tuur op. Als u wilt dat de lijst alleen de waarden bevat (d.w.z. de tekens van de te­ken­reeks), kunt u enumerate() com­bi­ne­ren met een lijst­com­pre­hen­si­on:

text = "Python"
char_list = [char for index, char in enumerate(text)]
print(char_list)
# Output: ['P', 'y', 't', 'h', 'o', 'n']
python

JSON

JSON is een module die wordt gebruikt om JSON-gegevens te lezen en te schrijven en Python-ge­ge­vens­struc­tu­ren om te zetten naar JSON-formaat en vice versa. Als u Python-strings wilt omzetten naar lijsten met behulp van de JSON-module, kunt u dit doen door een string te parseren naar een Python-object.

import json
json_string = '[1, 2, 3, 4, 5]'
list_from_json = json.loads(json_string)
print(list_from_json)
# Output: [1, 2, 3, 4, 5]
python

De functie json.loads() ana­ly­seert de JSON-string en zet deze om in een over­een­kom­stig Python-object, in dit geval een lijst.

ast.literal

Met de module ast (Abstract Syntax Trees) kunt u een te­ken­reeks evalueren in een Python-ge­ge­vens­struc­tuur, waarbij de te­ken­reeks wordt ge­ïn­ter­pre­teerd als een Python-literaal. Als uw te­ken­reeks een geldig Python-li­te­raal­for­maat heeft (zoals een lijst, woor­den­boek, getal, enz.), kunt u deze veilig con­ver­te­ren naar het over­een­kom­sti­ge Python-object met behulp van ast.literal_eval().

import ast
string = "[1, 2, 3, 4, 5]"
my_list = ast.literal_eval(string)
print(my_list)
# Output: [1, 2, 3, 4, 5]
python

Lees meer over hoe het omzetten van een string naar datetime werkt in Python in onze digitale gids.

Ga naar hoofdmenu