Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Как разбить строку на список?

ПрограммированиеData science+3
Анонимный вопрос
  ·   · 1,6 K
Data engineer, пишу на python, люблю sqlalchemy...  · 1 окт 2022
Интересный вопрос и мало вводных данных: например, что есть строка?
  • Python - это строка
  • Python - is the most popular language - и это строка
"""
Python
Java
JS
""" - и это тоже строка
Какую из них хочется разбить? Попробуем по порядку😎
Как отметил коллега ниже (первый случай), когда есть строка в виде слова или набора символов, то её легко разбить на символы при помощи нехитрых манипуляций:
l = []
l[:] = "Python"
print(l)
# ['P', 'y', 't', 'h', 'o', 'n']
Но такой код может вызвать приступ паники и непонимания, следуя PEP8 лучше писать более явно:
list("Python")
# ['P', 'y', 't', 'h', 'o', 'n']
Логика такая, Python разделяет строку по символьно - подход выше будет работать с любыми строками, примеры ниже:
Как быть когда хочется чего-то большего, например, разбить на слова или по какому-либо символу. Ответ есть - для разбиения строк по символу в Python используется метод split он доступен у каждой строки.
"Python".split()
# ['Python']
По-умолчанию, ничего не будет, тк символ для разбиения по-умолчанию пробел, вот так:
"Python - programing language".split()
#['Python', '-', 'programing', 'language']
Но, мы можем указать символ самостоятельно:
"Python - programing language".split('-')
#['Python ', ' programing language']
А можно и не только символ👇
"Python - programing language".split('programing')
# ['Python - ', ' language']
Ух, чего только не может Python. Для еще большей гибкости при разбиении строк используются регулярные выражения (модуль re docs или статья).
Вот как бы выглядели примеры выше при использовании регулярных выражений:
import re

# посимвольно
# ['', 'P', 'y', 't', 'h', 'o', 'n', '']
re.split(pattern=r'', string="Python")

# по пробелам (и любому их кол-ву)
# ['Python', '-', 'programing', 'language']
re.split(pattern=r'\s+', string="Python - programing     language")

# по слову
# ['Python - ', '     language']
re.split(pattern=r'programing', string="Python - programing     language")

# по нескольким словам
['Python - is the ', ' programing language for ', ' science and analyze']
re.split(pattern=r'best|data', string="Python - is the best programing language for data science and analyze")
Регулярные выражения чрезвычайно гибкие и позволяют не только разделять строки\тексты, но и производить замены\поиск, рекомендую обратить внимание на этот инструмент.
Желаю успехов в изучении🖐