Питон строка в лист

Преобразование строки в список в Python

Мы можем преобразовать строку в список в Python, используя функцию split().

str.split(sep=None, maxsplit=-1)

Давайте посмотрим на простой пример, в котором мы хотим преобразовать строку в список слов, то есть разделить ее разделителем на пробелы.

s = 'Welcome To JournalDev' print(f'List of Words =')

Вывод: Список слов = [‘Welcome’, ‘To’, ‘JournalDev’].

Если мы хотим разбить строку на список на основе пробелов, нам не нужно предоставлять какой-либо разделитель для функции split(). Кроме того, перед разделением строки на список слов удаляются любые начальные и конечные пробелы. Таким образом, результат останется таким же и для строки s = ‘Welcome To JournalDev’.

Давайте посмотрим на другой пример, где у нас есть данные CSV в строку, и мы преобразуем ее в список элементов.

s = 'Apple,Mango,Banana' print(f'List of Items in CSV =')

Вывод: Список элементов в CSV = [‘Apple’, ‘Mango’, ‘Banana’].

Преобразование в список символов

Python String – это последовательность символов. Мы можем преобразовать его в список символов, используя встроенную функцию list(). При преобразовании строки в список символов пробелы также рассматриваются как символы. Кроме того, если есть начальные и конечные пробелы, они также являются частью элементов списка.

s = 'abc$ # 321 ' print(f'List of Characters =')

Вывод: Список символов = [‘a’, ‘b’, ‘c’, ‘$’, », ‘#’, », ‘3’, ‘2’, ‘1’, »].

Если вы не хотите, чтобы начальные и конечные пробелы были частью списка, вы можете использовать функцию strip() перед преобразованием в список.

s = ' abc ' print(f'List of Characters =')

Вывод: Список символов = [‘a’, ‘b’, ‘c’].

Источник

Как в Python преобразовать строку в список

Бывают случаи, когда вам нужно преобразовать один тип данных в другой. Python предлагает множество различных способов сделать это. В этой статье мы разберем, как преобразовать строку в список, т.е. получить на выходе список символов или даже слов, составляющих исходную строку.

Примечание редакции: об обратном преобразовании читайте в статье “Метод join() и объединение строк в Python”.

Что собой представляют строки и списки в Python?

Строки

Строка – это упорядоченная последовательность символов. Это серия символов, в которой один символ следует за другим. Строки берутся в одинарные или двойные кавычки:

# Строка взята в одинарные кавычки first_name = 'John' # Строка взята в двойные кавычки last_name = "Doe"

Если вы хотите создать строку, которая охватывает несколько строк, то есть так называемую многострочную строку, используйте тройные кавычки:

# Многострочная строка, взятая в тройные кавычки phrase = '''I am learning Python and I really enjoy learning the language! '''

Строки неизменяемы. Это означает, что после создания они не могут изменяться. Отдельные символы, составляющие строку, нельзя удалить или заменить.

Читайте также:  Java runtime environment jre or java development kit jdk

Например, если вы попытаетесь изменить первую букву слова со строчной на прописную, то в вашем коде возникнет ошибка:

# Попытка заменить 'p' на 'P' fave_language = "python" fave_language[0] = "P" print(fave_language) # В выводе будет сообщение об ошибке: # fave_language[0] = "P" # TypeError: 'str' object does not support item assignment

Однако вы можете обновить переменную, назначив ей в качестве значения новую строку, например так:

fave_language = "python" fave_language = "Python" print(fave_language) # Вывод: # Python

Списки

Список – это упорядоченная коллекция данных. Несколько элементов (обычно как-то связанных) хранятся вместе под одной переменной.

Вы можете создать список, заключив ноль или более элементов в квадратные скобки [] . Элементы в скобках разделяются запятыми.

Список может содержать данные любого типа (строки, числа и т.д.).

# Список чисел my_numbers_list = [10,20,30,40,50] print(my_numbers_list) # Вывод: # [10, 20, 30, 40, 50]

Списки изменяемы. Это означает, что после создания списка вы можете изменять существующие элементы, удалять их и добавлять новые в любое время в течение жизни программы.

Примечание редакции: об изменяемости читайте в статье “Что такое изменяемые типы данных в Python”.

programming_languages = ["Javascript", "Python", "Java"] # Обновление первого элемента списка programming_languages[0] = "JavaScript" print(programming_languages) # Вывод: #['JavaScript', 'Python', 'Java']

Как определить тип данных объекта в Python

Чтобы определить тип данных объекта в Python, используйте встроенную функцию type() . Ее синтаксис: type(object) . Функция type() возвращает тип объекта, который был передан в качестве аргумента. Обычно это используется в целях отладки.

Давайте посмотрим, как использовать type() со строками и списками:

my_name = «John Doe» my_lucky_numbers = [7,14,33] print(type(my_name)) print(type(my_lucky_numbers)) # Вывод: # #

Как преобразовать строку в список отдельных символов

Вы можете взять слово и превратить его в список. Каждый символ, составляющий это слово, становится отдельным элементом списка.

Например, возьмем слово “Python”. Его можно преобразовать в список символов так, что каждая буква слова станет отдельным элементом списка. То есть символ P будет первым элементом списка, символ y – вторым, символ t – третьим и так далее.

Самым простым способом преобразования строки в список является приведение типов.

Приведение типа означает прямое преобразование из одного типа данных в другой – в данном случае из строкового типа данных в тип данных списка.

Для этого нужно использовать встроенную функцию list() и передать заданную строку в качестве аргумента.

programming_language = "Python" programming_language_list = list(programming_language) print(programming_language_list) # Вывод: # ['P', 'y', 't', 'h', 'o', 'n']

Давайте рассмотрим другой пример:

current_routine = " Learning Python ! " current_routine_list = list(current_routine) print(current_routine_list) # Вывод: # [' ', 'L', 'e', 'a', 'r', 'n', 'i', 'n', 'g', ' ', 'P', 'y', 't', 'h', 'o', 'n', ' ', '!', ' ']

Текст » Learning Python ! » содержит пробелы в начале и конце, между словами “Learning” и “Python”, а также между словом “Python” и восклицательным знаком.

Читайте также:  Html задать размеры нового окна

Когда строка преобразуется в список символов, каждый пробел рассматривается как отдельный символ, поэтому пробелы тоже становятся элементами списка.

Чтобы удалить пробелы из начала и конца строки можно использовать метод strip() :

current_routine = " Learning Python ! " current_routine_list = list(current_routine.strip()) print(current_routine_list) # Вывод: # ['L', 'e', 'a', 'r', 'n', 'i', 'n', 'g', ' ', 'P', 'y', 't', 'h', 'o', 'n', ' ', '!']

Чтобы удалить все пробелы, а не только в начале и конце, и вообще не включить пробелы в список, используйте метод replace() . С его помощью можно заменить каждый пробельный символ пустой строкой:

current_routine = " Learning Python ! " current_routine_list = list(current_routine.replace(" ", "")) print(current_routine_list) # Вывод: # ['L', 'e', 'a', 'r', 'n', 'i', 'n', 'g', 'P', 'y', 't', 'h', 'o', 'n', '!']

Как преобразовать строку в список слов

Еще один способ преобразования строки в список – использование метода split() . Этот метод разбивает строку и возвращает список, где каждый элемент – отдельное слово исходной строки.

Общий синтаксис метода split() следующий:

string.split(separator=None, maxsplit=-1)

Давайте разберемся. string – это заданная строка, которую вы хотите превратить в список.

Метод split() , превращающий строку в список, принимает два необязательных параметра:

  • separator определяет, по каким разделителям будет разбиваться строка. По умолчанию разделителем является пробел.
  • maxsplit определяет максимальное количество разбиений. Значение по умолчанию -1 означает, что вся строка будет разбита по разделителям.

Давайте посмотрим на примере, как это работает.

phrase = «I am learning Python !» print(type(phrase)) # Вывод: #

В нашей строке все слова отделены пробелами. Давайте превратим эту строку в список слов, используя метод split() . Нам не нужно указывать разделитель или параметр maxsplit , поскольку мы хотим разбить строку по всем пробелам.

phrase = «I am learning Python !» phrase_to_list = phrase.split() print(phrase_to_list) print(type(phrase_to_list)) # Вывод: # [‘I’, ‘am’, ‘learning’, ‘Python’, ‘!’] #

Строка разделяется по пробелам, и каждое слово, составляющее строку, превращается в отдельный элемент списка.

Как использовать метод split() с параметром separator

С помощью метода split() можно также преобразовать строку в список подстрок, указав любой символ в качестве разделителя. В этом случае строка будет разбиваться не по пробелам, а по указанному символу.

Например, в качестве разделителя можно использовать запятую. Элементы, разделенные запятой, станут отдельными элементами списка.

phrase = "Hello world,I am learning Python!"

Здесь “Hello world” отделяется от “I am learning Python!” запятой. Если мы хотим использовать эту запятую в качестве разделителя для создания двух отдельных элементов списка, мы сделаем следующее:

phrase = "Hello world,I am learning Python!" phrase_to_list = phrase.split(",") print(phrase_to_list) # Вывод: # ['Hello world', 'I am learning Python!']

В результате мы получили список из двух элементов. Разделение строки произошло там, где была запятая.

Читайте также:  Java stream collect to array

Другим примером может быть разделение доменного имени по точкам.

domain_name = "www.freecodecamp.org" domain_name_list = domain_name.split(".") print(domain_name_list) # Вывод: # ['www', 'freecodecamp', 'org']

Каждый раз, когда появляется точка, в список добавляется новый элемент списка.

Как использовать метод split() с параметром maxsplit

Как упоминалось ранее, maxsplit – это необязательный параметр метода split() . Он определяет, на сколько частей будет разделена строка и, соответственно, сколько элементов попадет в список. По умолчанию maxsplit=-1 . Это означает, что строка будет разделена по всем имеющимся в ней разделителям.

Но мы можем изменить значение на конкретное число. Чтобы отделить только два слова от строки, мы установили maxsplit равным двум:

current_routine = "I enjoy learning Python everyday" current_routine_list = current_routine.split(maxsplit=2) print(current_routine_list) # Вывод: # ['I', 'enjoy', 'learning Python everyday']

Для maxsplit установлено значение 2 , что означает максимум два разделения строки (отсчет идет слева). Третьим элементом списка будет оставшаяся часть исходной строки.

Мы можем передать в split() оба аргумента:

domain_name = "www.freecodecamp.org" domain_name_list = domain_name.split(".", maxsplit=1) print(domain_name_list) # Вывод: # ['www', 'freecodecamp.org']

В этом примере разделителем была точка, а отделен был только первый элемент.

Как преобразовать строку целых чисел в список целых чисел

Числа считаются строками, если они заключены в одинарные или двойные кавычки.

Допустим, дата вашего рождения хранится в виде строки:

birthdate = «19/10/1993» print(type(birthdate)) # Вывод: #

Чтобы убрать косые черты и сохранить числа, связанные с датой, месяцем и годом рождения, как отдельные элементы списка, нужно сделать следующее:

birthdate = «19/10/1993» birthdate_list = birthdate.split(«/») print(birthdate_list) print(type(birthdate_list)) # Вывод: # [’19’, ’10’, ‘1993’] #

В примере разделителем служил слэш, / , и всякий раз, когда появлялся слэш, создавался новый элемент списка.

Если вы внимательно посмотрите на результат, то увидите, что элементы списка все еще являются строками, поскольку они окружены одинарными кавычками и преобразование типов не производилось.

Чтобы преобразовать каждый элемент списка из строки в целое число, используйте функцию map() .

Функция map() принимает два аргумента:

  • Функцию. В данном случае это будет функция int .
  • Итерируемый объект. В данном случае это созданный нами список.

birthdate = «19/10/1993» birthdate_list = birthdate.split(«/») str_to_int = (map(int, birthdate_list)) print(str_to_int) # Вывод: #

Это не совсем тот результат, который мы хотели получить. Когда мы проверяем тип данных, мы видим, что у нас больше нет списка:

print(type(str_to_int)) # Вывод: #

Чтобы исправить это, нам нужно вернуться назад и добавить функцию list() перед преобразованием:

birthdate = "19/10/1993" birthdate_list = birthdate.split("/") str_to_int = list(map(int, birthdate_list)) print(type(str_to_int)) print(str_to_int) # Вывод: # # [19, 10, 1993]

Заключение

Вот и все! Теперь вы знаете несколько способов преобразовать строку в список в Python.

Спасибо за прочтение и удачного кодинга!

Источник

Оцените статью