Преобразование строки в список в Python — распространенная задача в проектах.

Преобразование этой входной строки в список позволяет легко перебирать и обрабатывать каждое значение.

Мы увидим 5 различных способов преобразования строки в список, разделенный пробелами. Мы добьемся результата, используя встроенный метод под названием Split(), используя понимание списка, используя регулярное выражение, используя цикл 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']

Код реализован следующим образом, скриншот был показан ниже.

С помощью метода Split()

С параметром 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 ниже приведен снимок экрана.

С параметром maxsplit

С использованием 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 реализовал код.

С использованием List Comprehension

С помощью 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.

С помощью Regex

С помощью цикла 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.

С помощью цикла For

С помощью цикла 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.

С помощью цикла while

Заключение

Мы рассмотрели различные методы и способы преобразования строк в списки, разделенные пробелами, в Python. Мы использовали метод Strip(), наиболее распространенный и эффективный способ.

Кроме того, мы использовали понимание списка, Regex, цикл for и цикл while для разделения строки по пробелу на список в Python.

Добавить комментарий