Hoe strings omzetten naar lijsten in Python
In Python zijn lijsten veranderlijke objecten, terwijl strings onveranderlijk zijn. Door een string om te zetten in een lijst, kun je afzonderlijke tekens of delen van de string wijzigen, toevoegen of verwijderen.
Op welke verschillende manieren kunnen Python-strings worden omgezet naar lijsten?
Wanneer u een tekenreeks omzet in een lijst, wijzigt u de gegevensstructuur zodat deze lijstbewerkingen kan ondersteunen. Dit vergroot op zijn beurt het aantal beschikbare opties voor gegevensmanipulatie.
Hier zijn enkele van de meest voorkomende methoden om een tekenreeks om te zetten in een lijst:
split()
De Python-methode split splitst een tekenreeks op basis van een specifiek scheidingsteken of patroon in een lijst met subtekenreeksen. De algemene syntaxis voor deze methode is:
string.split(sep=None, maxsplit=-1)pythonstring: Dit is de oorspronkelijke tekenreeks.sep(optioneel): Dit is het scheidingsteken waar de tekenreeks moet worden gesplitst. Als er geen scheidingsteken wordt opgegeven, splitst de methode de tekenreeks standaard op spaties.maxsplit(optioneel):maxsplitdefinieert het maximale aantal splitsingen dat moet worden uitgevoerd. Als u wilt dat Python alle mogelijke splitsingen 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(',')}")pythonleidt tot de uitvoer:
List of colors = ['blue', 'green', 'yellow', 'red']pythonf-strings zijn een Python-stringformaat dat elke uitdrukking als plaatshouder tussen accolades accepteert. Met dit formaat kunnen we het resultaat van de functie split() combineren met de string "List of colors = ".
list()
De Python-functie list() wordt gebruikt om verschillende gegevensstructuren, 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 afzonderlijk element opgeslagen in de resulterende lijst.
text = "Hello"
char_list = list(text)
print(char_list)
# Output: ['H', 'e', 'l', 'l', 'o']pythonLijstbegrip
Lijstbegrip is een compacte manier om lijsten te maken door lussen en voorwaarden in één regel te combineren.
text = "Hello World"
char_list = [char for char in text]
print(char_list)
# Output: ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']pythonIn dit voorbeeld beginnen we met de tekenreeks "Hello World" en maken we een lijst die wordt opgeslagen in char_list. De lijstcomprehension doorloopt elke letter (char) in de tekenreeks 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 (substrings) eruit en slaat ze op als elementen in een lijst.
substring_list = string[start:stop:step]pythonstart: 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 geselecteerd teken wanneer het knippen wordt uitgevoerd. Het geeft aan hoeveel tekens er tussen elk geselecteerd teken moeten worden overgeslagen.
convert(string) is een door de gebruiker gedefinieerde functie die een tekenreeks omzet in een lijst met tekens. Wanneer de uitdrukking list1[:0] = string wordt uitgevoerd, worden de afzonderlijke tekens van de tekenreeks ingevoegd in de lege lijst list1.
def convert(string):
list1 = []
list1[:0] = string
return list1
str1 = "xyz"
print(convert(str1))
# Output: ['x', 'y', 'z']pythonre.findall()
Je kunt de functie re.findall() gebruiken om Python-strings om te zetten in lijsten door alle voorkomens van een reguliere expressie in een string te lokaliseren 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']pythonDe reguliere expressie r'\d+' zoekt naar een of meer opeenvolgende cijfers in een tekst en geeft deze weer als afzonderlijke elementen in een lijst.
enumerate()
De functie enumerate() in Python haalt zowel de index als de waarde van elk element in een iterabele gegevensstructuur op. Als u wilt dat de lijst alleen de waarden bevat (d.w.z. de tekens van de tekenreeks), kunt u enumerate() combineren met een lijstcomprehension:
text = "Python"
char_list = [char for index, char in enumerate(text)]
print(char_list)
# Output: ['P', 'y', 't', 'h', 'o', 'n']pythonJSON
JSON is een module die wordt gebruikt om JSON-gegevens te lezen en te schrijven en Python-gegevensstructuren 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]pythonDe functie json.loads() analyseert de JSON-string en zet deze om in een overeenkomstig Python-object, in dit geval een lijst.
ast.literal
Met de module ast (Abstract Syntax Trees) kunt u een tekenreeks evalueren in een Python-gegevensstructuur, waarbij de tekenreeks wordt geïnterpreteerd als een Python-literaal. Als uw tekenreeks een geldig Python-literaalformaat heeft (zoals een lijst, woordenboek, getal, enz.), kunt u deze veilig converteren naar het overeenkomstige 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]pythonLees meer over hoe het omzetten van een string naar datetime werkt in Python in onze digitale gids.