Преобразование строки в список в Python — распространенная задача в проектах.
Преобразование этой входной строки в список позволяет легко перебирать и обрабатывать каждое значение.
Мы увидим 5 различных способов преобразования строки в список, разделенный пробелами. Мы добьемся результата, используя встроенный метод под названием Split(), используя понимание списка, используя регулярное выражение, используя цикл for и цикл while.
- С помощью метода Split()
- С параметром maxsplit
- С использованием List Comprehension
- С помощью Regex
- С помощью цикла For
- С помощью цикла while
- Заключение
С помощью метода Split()
Метод Split() — это мощный инструмент Python, который позволяет нам преобразовывать строку в список подстрок на основе заданного параметра.
По умолчанию функция Split() в Python использует пробельные символы в качестве разделителей.
Синтаксис:
string.split(separator, maxsplit)
Примечание. Эти параметры являются необязательными; по умолчанию он нацелен на пробелы, и мы также можем указать разделитель ” “, чтобы добиться того же результата в Python.
Вот пример метода Split() для разделения строки по пробелу на список в Python.
Исходный код:
Employee_names = "Alice Benjamin Charlotte David Eleanor Frederick Grace Henry Isabel James" name_list = Employee_names.split() print(name_list)
Вывод: поскольку мы не предоставили никаких параметров функции Split() в Python, она разделит строку из пробелов на элементы списка.
['Alice', 'Benjamin', 'Charlotte', 'David', 'Eleanor', 'Frederick', 'Grace', 'Henry', 'Isabel', 'James']
Код реализован следующим образом, скриншот был показан ниже.
С параметром maxsplit
Давайте посмотрим, как мы можем указать maxsplit в качестве параметра внутри метода Split() в Python. Он используется для указания максимального количества выполняемых разделений.
Когда мы предоставляем параметр maxsplit функции Split() в Python, разделение начнется с первого пробела, перейдет к числу(указанному в maxsplit) и остановится.
Вот пример, в котором мы используем параметр maxsplit, чтобы ограничить количество разбиений по пустому пространству.
Код:
city_names = "Denver Seattle Atlanta Phoenix Portland Dallas Miami Minneapolis Honolulu Nashville" list_of_cities = city_names.split(" ", maxsplit=3) print(list_of_cities)
Выход:
['Denver', 'Seattle', 'Atlanta', 'Phoenix Portland Dallas Miami Minneapolis Honolulu Nashville']
После реализации кода в коде Visual Studio ниже приведен снимок экрана.
С использованием List Comprehension
Понимание списков обеспечивает удобочитаемый способ преобразования строки в список с меньшим количеством строк кода. Давайте применим этот метод на реалистичном примере.
Код:
cities_string = "New York Los Angeles Chicago Houston" cities_list = [city for city in cities_string.split()] print(cities_list)
Выход:
['New', 'York', 'Los', 'Angeles', 'Chicago', 'Houston']
Следующий снимок экрана был сделан после того, как редактор кода Visual Studio реализовал код.
С помощью Regex
Regex — очень эффективный способ, когда имеется сложная строка, поскольку он работает с шаблоном. Мы можем использовать функцию re.findall() в Python, чтобы разделить строку на пробелы.
Мы будем искать пробелы(r’\S+’) в строке Python. Давайте рассмотрим сценарий, в котором названия городов имеют другой формат: с пробелами и дефисами.
Код:
import re usa_cities_string = "San Francisco New-York Los Angeles" usa_cities_list = re.findall(r'\S+', usa_cities_string) print(usa_cities_list)
Выход:
['San', 'Francisco', 'New-York', 'Los', 'Angeles']
На снимке экрана ниже показан вывод после выполнения кода в редакторе кода Visual Studio.
С помощью цикла For
Цикл For предлагает структурированный способ преобразования строки в список в Python, поскольку мы можем перебирать строку.
Давайте возьмем пример, создав список столиц.
Код:
usa_capitals_string = "Washington Albany Austin Sacramento" result_list = [] current_capital = "" for char in usa_capitals_string: if char != ' ': current_capital += char else: result_list.append(current_capital) current_capital = "" result_list.append(current_capital) print(result_list)
Вывод: мы перебираем строку в Python, используя цикл for, и, используя условные операторы if else, мы разбиваем строку на список по пробелам.
['Washington', 'Albany', 'Austin', 'Sacramento']
На снимке экрана ниже представлены выходные данные, полученные после выполнения кода в редакторе кода Visual Studio.
С помощью цикла while
При применении нескольких условий для манипулирования строками вы можете использовать цикл while для достижения ожидаемого результата в Python.
Давайте рассмотрим пример, в котором пользователь добавляет хобби, разделенные пробелами, и мы преобразуем его в список с помощью.
Код:
hobbies = "music movies photography hiking coding" result_list = [] i = 0 while i < len(hobbies): preference = "" while i < len(hobbies) and hobbies[i] != ' ': preference += hobbies[i] i += 1 i += 1 result_list.append(preference) print(result_list)
Выход:
['music', 'movies', 'photography', 'hiking', 'coding']
Полученный снимок экрана представлен ниже после реализации кода в редакторе кода Visual Studio.
Заключение
Мы рассмотрели различные методы и способы преобразования строк в списки, разделенные пробелами, в Python. Мы использовали метод Strip(), наиболее распространенный и эффективный способ.
Кроме того, мы использовали понимание списка, Regex, цикл for и цикл while для разделения строки по пробелу на список в Python.