Рассмотрим 10 способов преобразования строки в список в Python.
- Способ 1: метод string split()
- Способ 2: преобразование строки в список с помощью функций Strip() и Split()
- Способ 3: использование нарезки строк
- Способ 4: применение метода re.findall()
- Способ 5: использование понимания списка
- Способ 6: функция enumerate()
- Способ 7: json.loads()
- Способ 8: метод ast.literal()
- Способ 9: лямбда-функция
- Способ 10: функция map()
Способ 1: метод string split()
Чтобы преобразовать строку в список в Python, вы можете использовать метод string split(). Метод split() разделяет строки, сохраняет их в списке и возвращает список слов, используя «delimiter» в качестве строки-разделителя.
|
1 2 3 4 5 6 7 |
def stringToList(string): listRes = list(string.split(" ")) return listRes strA = "Millie Bobby Brown" print(stringToList(strA)) |
Выход
|
1 |
['Millie', 'Bobby', 'Brown'] |
Вы можете проверить тип данных с помощью функции type().
Способ 2: преобразование строки в список с помощью функций Strip() и Split()
Метод Strip() возвращает копию строки, из которой удалены начальные и конечные символы, на основе переданного строкового аргумента. Метод Strip() удаляет символы слева и справа в зависимости от аргумента.
|
1 2 3 4 5 6 7 8 9 |
initial_list = "[11, 21, 29, 46, 19]" print("initial string", initial_list) print(type(initial_list)) op = initial_list.strip('][').split(', ') print("final list", op) print(type(op)) |
Выход
|
1 2 3 4 |
initial string [11, 21, 29, 46, 19] <class 'str'> final list ['11', '21', '29', '46', '19'] <class 'list'> |
Здесь мы определили строку, которая выглядит как список.
Затем мы используем методы Strip() и Split() для преобразования строки в список и, наконец, печатаем список и его тип для двойной проверки.
Способ 3: использование нарезки строк
|
1 2 3 4 5 6 7 8 |
def Conversion(string): list1 = [] list1[:0] = string return list1 str1 = "KDL" print(Conversion(str1)) |
Выход
|
1 |
['K', 'D', 'L'] |
Способ 4: применение метода re.findall()
|
1 2 3 4 5 6 7 8 |
import re def Conversion(string): return re.findall('[a-zA-Z]', string) str1 = "KDL" print(Conversion(str1)) |
Выход
|
1 |
['K', 'D', 'L'] |
Способ 5: использование понимания списка
|
1 2 3 4 |
str1 = "KDL" output = [i for i in str1] print(output) |
Выход
|
1 |
['K', 'D', 'L'] |
Способ 6: функция enumerate()
|
1 2 3 4 5 6 |
str1 = "KDL" output = [i for a,i in enumerate(str1) ] print(output) |
Выход
|
1 |
['K', 'D', 'L'] |
Способ 7: json.loads()
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import json # initializing string representation of a list initial_list = "[11, 21, 19, 46, 29]" # printing intialized string of list and its type print("initial string", initial_list) print(type(initial_list)) # Converting string to list op = json.loads(initial_list) # printing final result and its type print("final list", op) print(type(op)) |
Выход
|
1 2 3 4 |
initial string [11, 21, 19, 46, 29] <class 'str'> final list [11, 21, 19, 46, 29] <class 'list'> |
Способ 8: метод ast.literal()
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import ast # initializing string representation of a list ini_list = "[11, 21, 19, 46, 29]" # printing intialized string of list and its type print("initial string", ini_list) print(type(ini_list)) # Converting string to list res = ast.literal_eval(ini_list) # printing final result and its type print("final list", res) print(type(res)) |
Выход
|
1 2 3 4 |
initial string [11, 21, 19, 46, 29] <class 'str'> final list [11, 21, 19, 46, 29] <class 'list'> |
Способ 9: лямбда-функция
|
1 2 3 4 5 6 |
str1 = "KDL" output = list(filter(lambda i:(i in str1), str1)) print(output) |
Выход
|
1 |
['K', 'D', 'L'] |
Способ 10: функция map()
|
1 2 3 4 5 6 |
str1 = "KDL" output = list(map(str, str1)) print(output) |
Выход
|
1 |
['K', 'D', 'L'] |
