Руководство по использованию метода split в Python
Строки — отличный инструмент в руках Python-разработчиков. В Python строка —
это последовательность символов в кавычках. Она может включать числа, буквы и
символы. С помощью Python строку можно разделить на список подстрок по
определенному разделителю. Это делается с помощью метода split
.
В этом материале разберем особенности его использования.
Что делает split в Python?
Функция split
сканирует всю строку и разделяет ее в случае нахождения разделителя.
В строке должен быть как минимум один разделитель. Им может выступать в том
числе и символ пробела. Пробел — разделитель по умолчанию.
Если параметр на задать, то разделение будет выполнено именно по символу
пробела.
Синтаксис функции следующий:
string.split(separator*, maxsplit*)
Параметр separator
— необязательный, но он позволяет задать разделитель
вручную.
Параметр maxsplit
умолчанию — -1, будут выполнены все разделения.
Как разделить строку в Python
Метод .split()
разделяет основную строку по разделителю и возвращает список строк.
my_st = "Пример строки Python"
print(my_st.split())
В примере выше была объявлена строка my_st
. Она помещена в одинарные кавычки. Функция .split()
разделяет ее на список таких строк:
['Пример', 'строки', 'Python']
Вывод содержит список подстрок.
Еще один пример разбиения строки:
my_st = "синий,оранжевый,красный"
print(my_st.split(","))
В приведенном выше примере мы создали строку my_st
с 3 подстроками. В этом случае именно запятая выступит параметром разделения в функции. Вывод будет следующий:
['синий', 'оранжевый', 'красный']
Примеры разделения строки в Python
Разделение сроки по пробелу
Если не передать параметр разделителя, то .split()
выполнит разделение по пробелу.
my_st = "Пример строки Python"
print(my_st.split())
Код вернет: ['Пример', 'строки', 'Python']
.
Обратите внимание, что мы не указали разделитель, который нужно использовать при вызове функции
, поэтому в качестве разделителя используется пробел.
Разделение строки по запятой
Разделителем может выступать запятая (","
). Это вернет список строк, которые
изначально были окружены запятыми.
my_st = "Например, строка Python"
print(my_st.split(","))
Вывод: ['Например', ' строка Python']
. Результатом является список подстрок, разделенных по запятым в исходной строке.
Разделение строк по нескольким разделителям
В Python можно использовать даже несколько разделителей. Для этого просто требуется передать несколько символов в качестве разделителей функции split.
Возьмем в качестве примера ситуацию, где разделителями выступают одновременно :
и ,
. Задействуем функцию re.split()
.
import re
my_st = "Я\nучу; язык,программирования\nPython"
print(re.split(";|,|\n", my_st))
Вывод:
['Я', 'учу', ' язык', 'программирования', 'Python']
Здесь мы используем модуль re и функции регулярных выражений. Переменной my_st
была присвоена строка с несколькими разделителями, включая «\n», «;» и «,». А функция re.split()
вызывается для этой строки с перечисленными выше разделителями.
Вывод — список подстрок, разделенных на основе оригинальной строки.
Как работает параметр maxsplit в функции split?
Этот параметр помогает задать максимальное число разделений. Разделить стоку можно, передав значение этого параметра. Например, если разделителем выступает символ пробела, а значение maxsplit
— 1
,
то строка будет разделена максимум на 2 подстроки.
languages = "Python,Java,Perl,PHP,Swift"
print(languages.split(",",1))
В строке languages
хранится строка с перечислением разных языков. Функция split
принимает запятую в качестве разделителя и значение 1 для параметра maxsplit
['Python', 'Java,Perl,PHP,Swift']
Следующий пример показывает, как выполнить разделение два раза. Здесь разделителем выступает пробел, а значение maxplit
равно 2.
languages = "Python,Java,Perl,PHP,Swift"
print(languages.split(",",2))
['Python', 'Java', 'Perl,PHP,Swift']
Как разделить строку посередине
Функция .split()
не может разбить строку на две равных части.
Однако для этого можно использовать срезы (оператор :
) и функцию len()
.
languages = "Python,Java,Perl,PHP,Swift"
mean_index = len(languages) // 2
print(f"Первая половина: {languages[:mean_index]}")
print(f"Вторая половина: {languages[mean_index:]}")
Вывод:
Первая половина: Python,Java,P
Вторая половина: erl,PHP,Swift
Значение languages
было разбито на две равных части. Для работы был использован оператор целочисленного деления.
Вывод
Вот что вы узнали:
- Функция
split
разбивает строку на подстроки по разделителю. - Параметр
maxsplit
позволяет указать максимально количество разделений. - Если разделитель не задать, то по умолчанию будет выбрано значение пробела.
- Срезы используются для деления строк на равные части.
Как разбить строку внутри списка в Python?
Как я могу это преобразовать:
['3 5 20']
к этому:
['3', '5', '20']
python
string Поделиться Источник Avii 17 ноября 2016 в 09:19
5 ответов
- питонский способ разбить строку на два списка
У меня есть много файлов с парами строк, которые выглядят так: first_string~second_string Первая часть — это то, что изменить, а вторая-то, к чему изменить первую часть. Это регулярные выражения, и я запускаю свое приложение с этими коллекциями, чтобы применить все изменения к грязным спискам…
- Как добавить строку в список внутри другого списка на python 2.7
Я хочу добавить ‘new_str’ в свой список внутри другого списка. Вот мой код: >>>l = [‘some_str’, [‘some_new_str’]] >>>print l [‘some_str’, [‘some_new_str’]] >>>l1 = l[1].append(‘new_str’) >>>print l1 None l[1].append(‘new_str’) вместо того, чтобы добавить новую…
3
Используйте
с пониманием списка:
>>> L = ['3 5 20']
>>> [x for s in L for x in s.split()]
['3', '5', '20']
Это будет работать для списков, содержащих одну или несколько строк.
Поделиться Eugene Yarmash 17 ноября 2016 в 09:21
2
input = ['3 5 20']
output = input[0].split()
Поделиться Chr 17 ноября 2016 в 09:21
0
Чтобы объединить список таких строк, используйте map и reduce:
required_list = reduce(lambda x, y: x+y, map(lambda x: str.split(x), ['3 5 20', '1 2 3']))
Необходимый список будет:
['3', '5', '20', '1', '2', '3']
Поделиться aliasav 17 ноября 2016 в 10:04
- как разбить строку python
У меня есть функция python, которая возвращает следующее: result = myfunction() result will be e.g. 192.168.200.123, 02/12/2013 13:59:42, 02/12/2013 13:59:42 то есть строка, содержащая 3 значения, разделенные запятыми. Как разбить эту строку на 3 новые переменные??
- как разбить строку на разделы python
Как разбить строку на разделы в Python? Например, как мне сломаться IF: /1 =isit= 1\ .show: 1 = 1 в sections = [‘IF:’, ‘/’, 1, ‘=isit=’, 1, ‘\\’, ‘.’, ‘show:’, ‘1 = 1’] PS. Это основное развитие речи Токены (на данный момент): IF: (для if) / (для обозначения начала выражения или того, что…
0
>>> l = ['3 5 20']
>>> l[0].split()
['3', '5', '20']
Поделиться Right leg 17 ноября 2016 в 09:25
0
Используйте функцию .split(). Он вернет список из строки.
(' ')
.Например:
>>>l = ["Hi my name is Bon"]
>>>l = l[0].split()
>>>print(l)
['Hi', 'my', 'name', 'is', 'Bon']
Вы можете видеть в примере, что он разбивает строку на пробелы. Надеюсь, это поможет.
Поделиться Elodin 17 ноября 2016 в 09:30
Похожие вопросы:
Как разбить строку на список меток в python?
Предположим , у нас есть предложение типа: ABCDEFG и список знаков типа: [0,0,1,0,0,0,1] . Я намереваюсь разбить исходную строку на сегменты с помощью списка меток: если символ имеет индекс i в…
Как разбить строку вокруг чисел?
Например, возьмем входную строку Street42/53 . Я хочу разбить его на ряды цифр, поэтому получаю [‘Street’, ’42, ‘/’, ’53’] . Я попробовал regex, но проблема в том, что такие выражения, как…
Python разбить строку на символ подчеркивания
Как разбить строку на второе подчеркивание в Python, чтобы получить что-то вроде этого название = this_is_my_name_and_its_cool разделите имя, чтобы я получил это [this_is, my_name_and_its_cool]
питонский способ разбить строку на два списка
У меня есть много файлов с парами строк, которые выглядят так: first_string~second_string Первая часть — это то, что изменить, а вторая-то, к чему изменить первую часть. Это регулярные выражения, и…
Как добавить строку в список внутри другого списка на python 2.7
Я хочу добавить ‘new_str’ в свой список внутри другого списка. Вот мой код: >>>l = [‘some_str’, [‘some_new_str’]] >>>print l [‘some_str’, [‘some_new_str’]] >>>l1 =…
как разбить строку python
У меня есть функция python, которая возвращает следующее: result = myfunction() result will be e.g. 192.168.200.123, 02/12/2013 13:59:42, 02/12/2013 13:59:42 то есть строка, содержащая 3 значения,…
как разбить строку на разделы python
Как разбить строку на разделы в Python? Например, как мне сломаться IF: /1 =isit= 1\ .show: 1 = 1 в sections = [‘IF:’, ‘/’, 1, ‘=isit=’, 1, ‘\\’, ‘.’, ‘show:’, ‘1 = 1’] PS. Это основное развитие…
Как разбить предложение на python в зависимости от fullstop ‘.’?
Я пишу сценарий в python, в котором у меня есть следующая строка: a = write This is mango. write This is orange. Я хочу разбить эту строку на предложения, а затем добавить каждое предложение как…
python regex-разбить строку на ‘|’, Кроме как внутри любых скобок
Я относительно новичок в python regex. Я хочу разбить строку на ‘|’, а не на фигурные скобки. Пример : Str = a | ( b | c ) | d Я хочу получить следующий результат Result = [a,( b | c ),d]
Как разбить строку с помощью любого слова из списка слов
Как разбить строку с помощью любого слова из списка слов У меня есть список строк l = [‘IV’, ‘IX’, ‘XL’, ‘XC’, ‘CD’, ‘CM’] Мне нужно разделить, например, ‘XCVI’ на основе этого списка, например…
Как разбить строку на список? Ru Python
Я хочу, чтобы моя функция python разделила предложение (ввод) и сохранила каждое слово в списке. Код, который я написал до сих пор, разделяет предложение, но не сохраняет слова в виде списка. Как мне это сделать?
text.split()
Этого должно быть достаточно, чтобы хранить каждое слово в списке. words
уже являются списком слов из предложения, поэтому нет необходимости в цикле.
Во-вторых, это может быть опечатка, но ваша петля немного перепуталась. Если вы действительно хотите использовать append, это будет:
words.append(word)
не
word.append(words)
Разделяет строку в text
на любые последовательные пробелы пробелов.
words = text.split()
Разделите строку в text
на разделителе: ","
.
words = text.split(",")
Переменная слов будет list
и содержать слова из text
разделенного на разделитель.
str.split ()
Возвращает список слов в строке, используя sep в качестве разделителя … Если sep не указан или None, применяется другой алгоритм разделения: пробеги последовательных пробелов рассматриваются как один разделитель, и результат будет содержать нет пустых строк в начале или в конце, если строка имеет ведущие или конечные пробелы.
>>> line="a sentence with a few words" >>> line.split() ['a', 'sentence', 'with', 'a', 'few', 'words'] >>>
В зависимости от того, что вы планируете делать с вашим предложением как список, вы можете посмотреть на Natural Language Took Kit . Он в значительной степени занимается обработкой и оценкой текста. Вы также можете использовать его для решения своей проблемы:
import nltk words = nltk.word_tokenize(raw_sentence)
Это имеет дополнительное преимущество в разделении пунктуации.
Пример:
>>> import nltk >>> s = "The fox's foot grazed the sleeping dog, waking it." >>> words = nltk.word_tokenize(s) >>> words ['The', 'fox', "'s", 'foot', 'grazed', 'the', 'sleeping', 'dog', ',', 'waking', 'it', '.']
Это позволяет отфильтровать любую пунктуацию, которую вы не хотите, и использовать только слова.
Обратите внимание, что другие решения, использующие string.split()
, лучше, если вы не планируете делать какие-либо сложные манипуляции с рассылкой.
Как насчет этого алгоритма? Разделите текст на пробелы, затем нарисуйте пунктуацию. Это тщательно удаляет пунктуацию с края слов, не нанося вреда апострофам внутри таких слов, как we're
.
>>> text "'Oh, you can't help that,' said the Cat: 'we're all mad here. I'm mad. You're mad.'" >>> text.split() ["'Oh,", 'you', "can't", 'help', "that,'", 'said', 'the', 'Cat:', "'we're", 'all', 'mad', 'here.', "I'm", 'mad.', "You're", "mad.'"] >>> import string >>> [word.strip(string.punctuation) for word in text.split()] ['Oh', 'you', "can't", 'help', 'that', 'said', 'the', 'Cat', "we're", 'all', 'mad', 'here', "I'm", 'mad', "You're", 'mad']
Я хочу, чтобы моя функция python разделила предложение (ввод) и сохранила каждое слово в списке
Метод str().split()
делает это, он принимает строку, разбивает ее на список:
>>> the_string = "this is a sentence" >>> words = the_string.split(" ") >>> print(words) ['this', 'is', 'a', 'sentence'] >>> type(words) <type 'list'> # or <class 'list'> in Python 3.0
Проблема, с которой вы сталкиваетесь, связана с опечаткой, вы print(words)
вместо print(word)
:
Переименование переменной word
в current_word
, это то, что у вас было:
def split_line(text): words = text.split() for current_word in words: print(words)
.. когда вы должны были сделать:
def split_line(text): words = text.split() for current_word in words: print(current_word)
Если по какой-либо причине вы хотите вручную создать список в цикле for, вы должны использовать метод list append()
, возможно, потому, что хотите сократить все слова (например):
my_list = [] # make empty list for current_word in words: my_list.append(current_word.lower())
Или немного более аккуратно, используя список-понимание :
my_list = [current_word.lower() for current_word in words]
shlex имеет функцию .split()
. Он отличается от str.split()
тем, что он не сохраняет кавычки и рассматривает цитируемую фразу как одно слово:
>>> import shlex >>> shlex.split("sudo echo 'foo && bar'") ['sudo', 'echo', 'foo && bar']
Я думаю, вы сбиты с толку из-за опечатки.
Замените print(words)
на print(word)
внутри вашего цикла, чтобы каждое слово было напечатано на другой строке
Как разбить строку на массив символов с помощью Python? Ru Python
Я попытался посмотреть вокруг Интернета на ответы на разделение строки на массив символов, но я не могу найти простой метод
str.split(//)
, похоже, не работает, как Ruby. Есть ли простой способ сделать это без циклов?
>>> s = "foobar" >>> list(s) ['f', 'o', 'o', 'b', 'a', 'r']
Вам нужен список
Вы берете строку и передаете ее в список ()
s = "mystring" l = list(s) print l
Вы также можете сделать это очень простым способом без списка ():
>>> [c for c in "foobar"] ['f', 'o', 'o', 'b', 'a', 'r']
Я исследовал еще два пути для выполнения этой задачи. Это может быть полезно для кого-то.
Первый легко:
In [25]: a = [] In [26]: s = 'foobar' In [27]: a += s In [28]: a Out[28]: ['f', 'o', 'o', 'b', 'a', 'r']
А вторая использует map
и lambda
функцию. Это может быть уместно для более сложных задач:
In [36]: s = 'foobar12' In [37]: a = map(lambda c: c, s) In [38]: a Out[38]: ['f', 'o', 'o', 'b', 'a', 'r', '1', '2']
Например
# isdigit, isspace or another facilities such as regexp may be used In [40]: a = map(lambda c: c if c.isalpha() else '', s) In [41]: a Out[41]: ['f', 'o', 'o', 'b', 'a', 'r', '', '']
См. Документы python для получения дополнительных методов
Задача сводится к итерации над символами строки и сбору их в список. Самое наивное решение будет выглядеть так:
result = [] for character in string: result.append(character)
Конечно, его можно сократить до
result = [character for character in string]
но все же есть более короткие решения, которые делают то же самое.
list
может использоваться для преобразования любых итераций (итераторов, списков, кортежей, строк и т. д.) в список.
>>> list('abc') ['a', 'b', 'c']
Большой плюс заключается в том, что он работает одинаково как в Python 2, так и в Python 3.
Кроме того, начиная с Python 3.5 (благодаря удивительному PEP 448 ), теперь можно создать список из любого итерабельного, распаковав его в пустой литерал списка:
>>> [*'abc'] ['a', 'b', 'c']
Это более аккуратно, а в некоторых случаях более эффективно, чем конструктор list
вызовов.
Я бы посоветовал использовать подходы, основанные на map
, потому что map
не возвращает список в Python 3. См. Раздел Использование фильтра, карты и сокращения в Python 3 .
Предположим, что существует имя строки txt.
'''Python 2.7''' txt = 'India' arr = list(txt) print arr
просто:
s = 'My' print(list(s))
Если вы хотите читать только доступ к строке, вы можете использовать запись массива напрямую.
Python 2.7.6 (default, Mar 22 2014, 22:59:38) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> t = 'my string' >>> t[1] 'y'
Может быть полезно для тестирования без использования регулярного выражения. Строка содержит конечную новую строку?
>>> t[-1] == '\n' False >>> t = 'my string\n' >>> t[-1] == '\n' True
Если вы хотите обработать свой String один символ за раз. у вас есть различные варианты. uhello = u’Hello \ u0020World ‘
Использование List List: print ([x for x in uhello]) Выход: [‘H’, ‘e’, ’l’, ‘l’, ‘o’, », ‘W’, ‘o’, ‘r ‘,’ l ‘,’ d ‘]
используя карту: print (list (map (lambda c2: c2, uhello))) Выход: [‘H’, ‘e’, ’l’, ‘l’, ‘o’, », ‘W’, ‘o ‘,’ r ‘,’ l ‘,’ d ‘]
Вызов Встроенная функция печати списка (список (uhello)) Выход: [‘H’, ‘e’, ’l’, ‘l’, ‘o’, », ‘W’, ‘o’, ‘r’, ‘ ‘l’, ‘d’]
Использование для цикла: для c в uhello: print (c)
Ну, так как мне нравится версия списка, вот еще один более верный способ, который я нашел (но это круто, поэтому я думал, что добавлю его в бой):
>>> text = "My hovercraft is full of eels" >>> [text[i] for i in range(len(text))] ['M', 'y', ' ', 'h', 'o', 'v', 'e', 'r', 'c', 'r', 'a', 'f', 't', ' ', 'i', 's', ' ', 'f', 'u', 'l', 'l', ' ', 'o', 'f', ' ', 'e', 'e', 'l', 's']
>>> for i in range(len(a)): ... print a[i] ...
где a – строка, которую вы хотите отделить. Значения «a [i]» – это индивидуальный характер строки, которую они могли бы добавить в список.
Как использовать Split в Python
Метод Split() в Python возвращает список слов в строке / строке, разделенных строкой разделителя.
Разбиение строки Split
Метод split() в Python без аргумента разбивается на пробелы.
Пример:
str = «This is a test» print(str.split())
str = «This is a test» print(str.split()) |
Вывод:
[‘This’, ‘is’, ‘a’, ‘test’]
[‘This’, ‘is’, ‘a’, ‘test’] |
Разделение на первое вхождение
В следующем примере он будет разделен только на 2 пробела.
Пример:
str = «This is a test» print(str.split(» «,2))
str = «This is a test» print(str.split(» «,2)) |
Вывод:
Разделение строк из текстового файла в Python
Следующая программа Python, читающая текстовый файл и разбивающая его на отдельные слова в Python.
Пример:
with open(«my_file.txt», «r») as my_file: for line in my_file: str = line.split() print(str)
with open(«my_file.txt», «r») as my_file: for line in my_file: str = line.split() print(str) |
Разбиение строки на новую строку (\ n)
str = «This \nis \na \ntest» print(str) print(«\nAfter Split\n») print(str.split())
str = «This \nis \na \ntest» print(str) print(«\nAfter Split\n») print(str.split()) |
Вывод:
This is a test After Split [‘This’, ‘is’, ‘a’, ‘test’]
This is a test After Split [‘This’, ‘is’, ‘a’, ‘test’] |
Разбиение строки по вкладке (\ t)
str = «This \tis \ta \ttest» print(str) print(«\nAfter Split\n») print(str.split())
str = «This \tis \ta \ttest» print(str) print(«\nAfter Split\n») print(str.split()) |
Вывод:
This is a test After Split [‘This’, ‘is’, ‘a’, ‘test’]
This is a test After Split [‘This’, ‘is’, ‘a’, ‘test’] |
Разбиение строки запятой (,)
str = «This,is,a,test» print(str.split(«,»))
str = «This,is,a,test» print(str.split(«,»)) |
Вывод:
[‘This’, ‘is’, ‘a’, ‘test’]
[‘This’, ‘is’, ‘a’, ‘test’] |
Разделить строку с несколькими разделителями
В этом случае Python использует регулярное выражение.
Пример:
import re str = «This,isa;test» print(re.split(«,;»,str))
import re str = «This,isa;test» print(re.split(«,;»,str)) |
Вывод:
[‘This’, ‘is’, ‘a’, ‘test’]
[‘This’, ‘is’, ‘a’, ‘test’] |
Разделить строку в список
Следующая программа Python разделяет строку на список.
Пример:
str = «This is a test» lst = str.split() for st in lst: print(st)
str = «This is a test» lst = str.split() for st in lst: print(st) |
Вывод:
Источник: net-informations.com
python — Разделение строки Python по определенным символам
У меня есть строка, которая выглядит так:
"\nthis\n \nis\n \nwhat\n \nthe\n \sentence looks\n \n \nlike\n"
Есть ли простой способ разбить строку, чтобы я просто поместил строки в \ n строки? Так что результат будет:
['this', 'is', 'what', 'the', 'sentence looks', 'like']
-1
tam63 27 Июл 2020 в 17:46
5 ответов
Лучший ответ
Вы можете использовать re.split()
>>> import re
>>> s = "\nthis\n \nis\n \nwhat\n \nthe\n \nsentence looks\n \n \nlike\n"
>>> re.split(r'\n\s+', s.strip())
['this', 'is', 'what', 'the', 'sentence looks', 'like']
1
Prem Anand 27 Июл 2020 в 14:58
Вы можете использовать:
yourString = "\nthis\n \nis\n \nwhat\n \nthe\n \sentence looks\n \n \nlike\n"
yourArray = yourString.split("\n")
print (yourArray)
https://www.w3schools.com/python/ref_string_split.asp
-1
Cyril FRANCOIS 27 Июл 2020 в 14:48
s = "\nthis\n \nis\n \nwhat\n \nthe\n \nsentence looks\n \n \nlike\n"
print([x for x in s.strip().split('\n') if x.replace(' ', '')])
Я использовал понимание списка здесь. x выполняет итерацию по строке, разделенной символом новой строки ("\n"
), а если x не полностью состоит из пробелов, добавьте его в список.
Извините, если я не очень хорошо объяснил, мой английский не очень хорош.
1
David 28 Июл 2020 в 00:02
Попробуй это:
a = "\nthis\n \nis\n \nwhat\n \nthe\n \nsentence looks\n \n \nlike\n"
a = list(filter(None, a.replace(' ','').split('\n')))
Выход:
In [34]: a
Out[34]: ['this', 'is', 'what', 'the', 'sentencelooks', 'like']
-1
Mehrdad Pedramfar 27 Июл 2020 в 14:51
Написал это по-разному, не очень ясно, что вы хотели, хотя нижний должен быть лучшим ответом, который вы можете искать.
#--- Original code here
text = "\nthis\n \nis\n \nwhat\n \nthe\n \nsentence looks\n \n \nlike\n"
print(text)
print('Original')
#--- Modified code 1
text = ['this', 'is', 'what', 'the', 'sentence', 'looks', 'like']
print(text)
print('mod 1')
#--- Modified code 2
text = """this is what the sentence looks like"""
print(text)
print('mod 2')
#--- Modified code 3
text = "\nthis\n \nis\n \nwhat\n \nthe\n \nsentence looks\n \n \nlike\n".replace('\n', '')
print(text.split('\n'))
print('mod 3')
0
Anonymous 27 Июл 2020 в 15:06
Строки. Курс «Python. Введение в программирование»
Мы уже рассматривали строки как простой тип данных наряду с целыми и вещественными числами и знаем, что строка – это последовательность символов, заключенных в одинарные или двойные кавычки.
В Python нет символьного типа, т. е. типа данных, объектами которого являются одиночные символы. Однако язык позволяет рассматривать строки как объекты, состоящие из подстрок длинной в один и более символов. При этом, в отличие от списков, строки не принято относить к структурам данных. Видимо потому, что структуры данных состоят из более простых типов данных, а для строк в Python нет более простого (символьного) типа.
С другой стороны, строка, как и список, – это упорядоченная последовательность элементов. Следовательно, из нее можно извлекать отдельные символы и срезы.
>>> s = "Hello, World!" >>> s[0] 'H' >>> s[7:] 'World!' >>> s[::2] 'Hlo ol!'
В последнем случае извлечение идет с шагом, равным двум, т. е. извлекается каждый второй символ. Примечание. Извлекать срезы с шагом также можно из списков.
Важным отличием от списков является неизменяемость строк в Python. Нельзя перезаписать какой-то отдельный символ или срез в строке:
>>> s[-1] = '.' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment
Интерпретатор сообщает, что объект типа str
не поддерживает присвоение элементам.
Если требуется изменить строку, то следует создать новую из срезов старой:
>>> s = s[0:-1] + '.' >>> s 'Hello, World.'
В примере берется срез из исходной строки, соединяется с другой строкой. Получается новая строка, которая присваивается переменной s. Ее старое значение при этом теряется.
Методы строк
В Python для строк есть множество методов. Посмотреть их можно по команде dir(str)
, получить информацию по каждому – help(str.имя_метода)
. Рассмотрим наиболее интересные из них.
Методы split() и join()
Метод split()
позволяет разбить строку по пробелам. В результате получается список слов. Если пользователь вводит в одной строке ряд слов или чисел, каждое из которых должно в программе обрабатываться отдельно, то без split()
не обойтись.
>>> s = input() red blue orange white >>> s 'red blue orange white' >>> sl = s.split() >>> sl ['red', 'blue', 'orange', 'white'] >>> s 'red blue orange white'
Список, возвращенный методом split()
, мы могли бы присвоить той же переменной s
, то есть s = s.split()
. Тогда исходная строка была бы потеряна. Если она не нужна, то лучше не вводить дополнительную переменную.
Метод split()
может принимать необязательный аргумент-строку, указывающей по какому символу или подстроке следует выполнить разделение:
>>> s.split('e') ['r', 'd blu', ' orang', ' whit', ''] >>> '40030023'.split('00') ['4', '3', '23']
Метод строк join()
выполняет обратное действие. Он формирует из списка строку. Поскольку это метод строки, то впереди ставится строка-разделитель, а в скобках — передается список:
>>> '-'.join(sl) 'red-blue-orange-white'
Если разделитель не нужен, то метод применяется к пустой строке:
>>> ''.join(sl) 'redblueorangewhite'
Методы find() и replace()
Данные методы строк работают с подстроками. Методы find()
ищет подстроку в строке и возвращает индекс первого элемента найденной подстроки. Если подстрока не найдена, то возвращает -1.
>>> s 'red blue orange white' >>> s.find('blue') 4 >>> s.find('green') -1
Поиск может производиться не во всей строке, а лишь на каком-то ее отрезке. В этом случае указывается первый и последний индексы отрезка. Если последний не указан, то ищется до конца строки:
>>> letters = 'ABCDACFDA' >>> letters.find('A', 3) 4 >>> letters.find('DA', 0, 6) 3
Здесь мы ищем с третьего индекса и до конца, а также с первого и до шестого. Обратите внимания, что метод find()
возвращает только первое вхождение. Так выражение letters.find('A', 3)
последнюю букву ‘A’ не находит, так как ‘A’ ему уже встретилась под индексом 4.
Метод replace()
заменяет одну подстроку на другую:
>>> letters.replace('DA', 'NET') 'ABCNETCFNET'
Исходная строка, конечно, не меняется:
Так что если результат надо сохранить, то его надо присвоить переменной:
>>> new_letters = letters.replace('DA', 'NET') >>> new_letters 'ABCNETCFNET'
Метод format()
Строковый метод format()
уже упоминался при рассмотрении вывода на экран с помощью функции print()
:
>>> print("This is a {0}. It's {1}." ... .format("ball", "red")) This is a ball. It's red.
Однако к print()
он никакого отношения не имеет, а применяется к строкам. Лишь потом заново сформированная строка передается в функцию вывода.
Возможности format()
широкие, рассмотрим основные.
>>> s1 = "length - {}, width - {}, height - {}" >>> s1.format(3, 6, 2.3) 'length - 3, width - 6, height — 2.3'
Если фигурные скобки исходной строки пусты, то подстановка аргументов идет согласно порядку их следования. Если в фигурных скобках строки указаны индексы аргументов, порядок подстановки может быть изменен:
>>> s2 = "height - {1}, length - {0}" >>> s2.format(3, 6) 'height - 6, length - 3'
Кроме того, аргументы могут передаваться по слову-ключу:
>>> info = "This is a {subj}. It's {prop}." >>> info.format(subj="table", prop="small") "This is a table. It's small."
Пример форматирования вещественных чисел:
>>> "{1:.2f} {0:.3f}".format(3.33333, 10/6) '1.67 3.333'
Практическая работа
Вводится строка, включающая строчные и прописные буквы. Требуется вывести ту же строку в одном регистре, который зависит от того, каких букв больше. При равном количестве преобразовать в нижний регистр. Например, вводится строка «HeLLo World», она должна быть преобразована в «hello world», потому что в исходной строке малых букв больше. В коде используйте цикл
for
, строковые методыupper()
(преобразование к верхнему регистру) иlower()
(преобразование к нижнему регистру), а также методыisupper()
иislower()
, проверяющие регистр строки или символа.Строковый метод
isdigit()
проверяет, состоит ли строка только из цифр. Напишите программу, которая запрашивает с ввода два целых числа и выводит их сумму. В случае некорректного ввода программа не должна завершаться с ошибкой, а должна продолжать запрашивать числа. Обработчик исключений try-except использовать нельзя.
Примеры решения и дополнительные уроки в android-приложении и pdf-версии курса
Как использовать Split в Python
Метод split () в Python возвращает список слов в строке / строке, разделенных разделителем строка . Этот метод вернет одну или несколько новых строк. Все подстроки возвращаются в типе данных списка.
Синтаксис
string.split (разделитель, макс.)Параметр | Описание |
---|---|
сепаратор | — это разделитель.Строка разделяется по указанному разделителю. Если не указан, то любой пробел является разделителем. |
макссплит | Это число, которое говорит нам разделить строку на максимальное указанное количество раз. Если он не предусмотрен, значит, нет предела. |
возврат | split () разбивает строку по разделителю и возвращает список строк. |
Если при вызове функции разделитель не определен, по умолчанию будет использоваться пробелов .Проще говоря, разделитель — это определенный символ , который будет помещен между каждой переменной. Поведение разбиения на пустую строку зависит от значения sep. Если sep не указан или указан как None, результатом будет пустой список. Если sep указан как любая строка, результатом будет список, содержащий один элемент, который является пустой строкой .
Разделение строки на пробел
Метод split () в Python без аргумента разбивается на пробелы.
пример
str = «Это тест» печать (str.split ())выход
[‘Это проверка’]Расщепление при первом появлении
В следующем примере он будет разделен только по первым двум пробелам.
пример
str = «Это тест» print (str.split («», 2))выход
[‘Это проверка’]Разделение строк из текстового файла в Python
Следующая программа Python читает текстовый файл и разбивает его на отдельные слова в Python
пример
с open («my_file.txt «,» r «) как my_file: для строки в my_file: str = line.split () печать (str)Разделение строки новой строкой (\ n)
str = «Это \ nis \ na \ ntest» печать (str) print («\ nПосле разделения \ n») печать (str.split ())выход
Этот является а контрольная работа После Сплита [‘Это проверка’]Разделение строки табуляцией (\ t)
str = «Это \ tis \ ta \ ttest» печать (str) print («\ nПосле разделения \ n») печать (ул.расколоть())выход
Это проверка После Сплита [‘Это проверка’]Разделение строки запятой (,)
str = «Это тест» print (str.split («,»))выход
[‘Это проверка’]Разделенная строка с несколькими разделителями
В этом случае Python использует регулярное выражение.
пример
импорт ре str = «Это, isa; test» печать (re.split («,;», str))выход
[‘Это проверка’]Разделить строку на список
Следующая программа Python разбивает строку на список.
пример
str = «Это тест» lst = str.split () для st in lst: печать (st)выход
Этот является а контрольная работапараметр maxsplit
Разделить строку на список максимум из 2 элементов
числа = «один, два, три, четыре, пять, шесть» результат = числа.split («», 2) печать (результат)выход
[‘один два три четыре пять шесть’]В приведенной выше программе maxsplit равен 2, первые две строки разделены, а остальные находятся в одной строке.
Разделить строку на массив символов
characters = «abcdef» результат = список (символы) печать (результат)выход
[‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ’f’]Python split () с использованием подстроки
Выделяет строку после определенной подстроки.
В приведенном выше примере вы можете увидеть, как функция split () возвращает следующую часть строки, используя определенную подстроку.
Здесь вы можете увидеть, как функция split () возвращает предыдущую часть строки с использованием определенной подстроки.
Ищете работу на Python?
Скорее всего, вам нужно будет доказать, что вы знаете, как работать с Python. Эти вопросы для собеседования по Python были разработаны специально, чтобы познакомить вас с характером вопросов, с которыми вы можете столкнуться во время собеседования по предмету Программирование на Python .Вот основные примеры вопросов для собеседования на Python, и ответы на них даны чуть ниже. Эти типовые вопросы составлены нашей командой экспертов, которая готовится к Python training , чтобы дать вам представление о типах вопросов, которые могут быть заданы на собеседовании.
Перейти к … Вопросы для собеседования по Python
Как использовать Python split ()
Метод Python split () делит строку на список.Значения в результирующем списке разделяются символом-разделителем. По умолчанию разделителем является пробел. Общие разделители включают пробелы и запятые.
Распространенная операция — это разделение содержимого строки на список Python. Например, у вас может быть список ингредиентов в рецепте, который вы хотите разделить на список.
Вот где на помощь приходит метод Python string split () . Метод split () позволяет разбить строку на список подстрок на основе указанного вами разделителя.
В этом руководстве с примерами обсуждаются основы функции Python split () . К концу чтения этого руководства вы станете мастером использования строковой функции split () .
Строки Python
Найди свой матч на тренировочном лагере
- Карьера Карма подойдет вам с лучшими техническими учебными курсами
- Получите эксклюзивные стипендии и подготовительные курсы
Строки — это наборы символов.Они позволяют хранить текстовые данные и управлять ими в программах Python. Строки — это один из типов последовательности Python. Это потому, что они хранят данные последовательно.
Вот пример строки в Python:
example_string = "Я пример строки!"
В этом коде мы назначаем строку «Я — пример строки!» в переменную example_string .
Мы можем использовать ряд строковых методов Python, чтобы разбить нашу строку на более мелкие компоненты. split () — один из примеров строкового метода, который позволяет нам разделить нашу строку. Давайте посмотрим, как работает этот метод.
Python String split ()
Метод split () разбивает строку на список. Строка разделяется символом-разделителем. По умолчанию этот символ — пробел.
имя_строки.split (разделитель, maxsplit)
split () — встроенная функция. Это означает, что вам не нужно импортировать какие-либо библиотеки для использования функции split ().Вот основные компоненты метода split () :
- разделитель — это символ, который функция split () будет использовать для разделения символов в строке. По умолчанию любой символ пробела будет использоваться в качестве разделителя (пробел, новая строка). Этот параметр не является обязательным.
- maxsplit определяет максимальное количество разделений, которое должно произойти. По умолчанию maxsplit равен -1, что означает, что будет выполняться бесконечное количество разделений.Этот параметр также является необязательным.
Строковый метод Python split () добавляется в конец строки. Это обычное дело для строковых методов. Вы не заключаете строку, которую хотите разделить, в метод split (), как если бы вы печатали строку. split () принимает два параметра:
Метод split () возвращает копию строки, представленной в виде списка. Это потому, что строки неизменяемы, а это значит, что их нельзя изменить. split () не изменяет исходную строку.
Давайте рассмотрим несколько примеров функции Python split () , чтобы продемонстрировать, как она работает.
Python Split String: Решение
Предположим, у вас есть набор ингредиентов для маффина с шоколадной крошкой, который вы хотите разделить на список. Каждый ингредиент в строке отделяется запятой. Используя метод split () , вы можете разделить строку ингредиентов на список.
Давайте разделим наш список ингредиентов на строку:
ингредиентов = «2 яйца, 125 мл растительного масла, 250 мл полуобезжиренного молока, 250 г сахарной пудры, 400 г муки самоподнимания, 100 г шоколадной стружки» list_of_ingredients = ингредиенты.расколоть(",") печать (list_of_ingredients)
Наш код возвращает:
[«2 яйца», «125 мл растительного масла», «250 мл полуобезжиренного молока», «250 г сахарной пудры», «400 г муки самоподнимания», «100 г шоколадных чипсов»]
Сначала мы определяем переменную под названием ингредиентов. В этой переменной хранится наш список ингредиентов. Каждый ингредиент в нашем списке разделен запятой (,).
Затем мы используем метод split () , чтобы разделить нашу строку ингредиентов с помощью запятых.Мы используем параметр-разделитель, чтобы сообщить Python, что наша строка должна быть разделена запятой. Затем мы присваиваем результат метода split () переменной list_of_ingredients .
Выводим в консоль переменную list_of_ingredients . Вы можете видеть, что наш код превратил нашу строку в список с шестью значениями: по одному для каждого ингредиента.
Управление количеством разделенных строк
Мы можем использовать параметр maxsplit , чтобы ограничить, сколько раз наша строка должна быть разделена.Предположим, мы хотим разделить только первые три ингредиента в нашем списке. Мы могли бы сделать это с помощью этого кода:
ингредиентов = «2 яйца, 125 мл растительного масла, 250 мл полуобезжиренного молока, 250 г сахарной пудры, 400 г муки самоподнимания, 100 г шоколадной стружки» list_of_ingredients = ингредиенты.split (",", 3) печать (list_of_ingredients)
Наш код возвращает:
[«Два яйца», «125 мл растительного масла», «250 мл полужирного молока», «250 г золотистой сахарной пудры, 400 г самоподнимающейся муки, 100 г шоколадной крошки»]
Мы определяем значение параметра maxsplit в нашем коде.Значение этого параметра установлено на 3. Мы определили запятую как наш разделительный символ. Мы сделали это в нашем первом примере.
Параметр maxsplit наша строка будет разделена максимум на три элемента. Затем оставшаяся часть строки будет добавлена в конец нашего списка.
В нашем списке теперь всего четыре пункта. Первые три элемента — это отдельные ингредиенты, а последний элемент в нашем списке содержит остальные элементы из нашей исходной строки.
Заключение
Метод Python string split () позволяет разделить строку на список с указанным разделителем.Например, вы можете использовать split () , чтобы разделить строку запятыми (,) или буквой J .
В этом руководстве обсуждались основы работы со строками в Python и как использовать метод string split () . Теперь вы готовы начать использовать метод split () , как профессионал Python!
Как разбить строку в Python
Разделить строку в Python довольно просто. Вы можете добиться этого с помощью встроенной функции Python «split ()».
Метод split () в Python разделяет каждое слово в строке с помощью запятой, превращая его в список слов. Это руководство проведет вас через различные способы разделения строки в Python.
Как использовать метод разделения Python
Как упоминалось ранее, по умолчанию встроенная в Python функция split () разбивает строку на отдельные слова, разделенные запятыми. Но он принимает два необязательных аргумента, и вот как выглядит синтаксис:
строка.split ([критерии разделения], [точка останова или max_split])
Когда вы указываете критерий разделения , функция находит этот критерий в строке и инициирует разделение в этой точке. В противном случае по умолчанию он разбивает строку везде, где есть пробел.
Взгляните на приведенный ниже пример, чтобы увидеть, как это работает. Здесь пробелы являются критерием разделения по умолчанию, поскольку мы его не указали:
myTexts = 'Как разбить текст в Python'
splitString = myTexts.split ()
print (splitString)
Вывод: ['How', 'to', 'split', 'a', 'text', 'in', 'Python']
Давайте посмотрим, как работает метод split () при указании критериев разделения. В этом примере запятая — это критерий разделения:
myTexts = 'Как разделить текст в Python'
print (myTexts.split (","))
Для лучшего понимания приведенный ниже пример кода разбивает строки везде, где есть точка.Итак, точки здесь — критерии разделения:
myTexts = 'Как разделить текст в Python'
print (myTexts.split ("."))
Вывод: ['Как разделить', 'текст в', 'Python']
max_split — целое число, определяющее максимальное количество разрывов в строке. Что еще более важно, он указывает точку разрыва струны.
Таким образом, вы можете включить это значение в круглые скобки, чтобы разбить строку в определенных точках.
Например, приведенный ниже код разбивает текст на два и останавливается на второй запятой:
myTexts = 'How, to, split, a, text, in, Python'
print (myTexts.split (",", 2))
Вывод: ['How', 'to', 'split, a, текст, in, Python ']
Чтобы увидеть, как это работает дальше, разделите строку в приведенном ниже коде, остановив ее на второй точке:
myTexts = 'Как разделить.a text.in.Python '
print (myTexts.split (".", 2))
Вывод: [' How ',' to split ',' a text.in.Python ']
Хотя метод split () не разбивает строки на алфавиты, вы можете добиться этого с помощью цикла for :
myTexts = 'Как разбить текст в Python'
Alphabets = []
для каждого в myTexts:
alphas = каждый
Alphabets.append (alphas)
print (Alphabets)
Связанный: Как добавить список в Python
Вместо добавления к списку, как мы это делали в приведенном выше коде, вы можете сократить код, используя понимание списка:
y = [каждый для каждого в myTexts]
print (y)
Создайте счетчик слов с помощью функции разделения Python
Вы можете использовать Python split () разными способами.Например, вы можете подсчитать количество слов после разделения каждой строки:
myTexts = 'Как разделить текст в Python'
print (len (myTexts.split ()))
Вывод: 7
Измените приведенный выше код, чтобы подсчитать слова в отдельном файле. Для этого вы можете создать функцию. Но здесь вам нужно открыть и прочитать файл, содержащий текст.
Затем сначала разделите текст и выполните счет, вернув длину полученного разделения с помощью встроенной функции len () :
def countWords (файл):
myFile = open (file, 'r')
File = myFile.read ()
splitString = File.split ()
return len (splitString)
print (countWords ('[Path to Yourfile.txt]'))
Хотя это немного сложно, вы также можете сделать это, используя только цикл для :
def countWords (file):
myFile = open (file, 'r')
File = myFile.read ()
File = [File]
для файлов в File:
return files.count ('') + 1
print (countWords ('[Путь к Yourfile.txt]'))
Связанный: Как открывать, читать и записывать в файл в Python
Чтобы цикл для читал каждое слово отдельно, вы должны вставить свой файл в отдельный список, как мы это сделали в приведенном выше коде.Кроме того, принудительно подсчитайте количество слов, оставив пробел между пустыми кавычками в круглых скобках. В противном случае вы получите неверный результат.
Таким образом, код работает, подсчитывая пробелы между каждым словом, а затем прибавляя 1 ко всему счету, чтобы получить фактическое количество слов.
Упростите свой код
Функция split () — ценный инструмент Python, и, как вы видели, вы можете использовать ее для подсчета слов в файле.Вы даже можете решать с ним другие задачи по своему желанию. В Python есть много других встроенных функций, подобных этой, которые быстро и эффективно упрощают сложные операции.
Поэтому вместо написания длинных блоков кода всегда полезно попробовать более эффективные, простые и быстрые встроенные методы решения различных проблем кодирования. Тем не менее, есть много других способов манипулирования строками в дополнение к разделению. Вы всегда можете попробовать их, чтобы улучшить обработку строк в Python.
Изучение Python? Вот как манипулировать строкамиИспользование строк и управление ими в Python может показаться трудным, но это обманчиво просто.
Читать далее
Об авторе Идову Омисола (Опубликовано 86 статей)Idowu увлечен всем, что связано с умными технологиями и производительностью.В свободное время он играет с кодированием и переключается на шахматную доску, когда ему скучно, но он также любит время от времени отвлекаться от рутины. Его страсть показывать людям современные технологии побуждает его писать больше.
Более От Идову ОмисолаПодпишитесь на нашу рассылку новостей
Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!
Еще один шаг…!
Подтвердите свой адрес электронной почты в только что отправленном вам электронном письме.
Разверните, чтобы прочитать всю историю
Split String в Python — Linux Подсказка
Когда строка из нескольких слов делится на определенное количество слов на основе определенного разделителя, это называется разделением строки. Большинство языков программирования используют метод split () для разделения строки на несколько слов. Тип возвращаемого значения этого метода — массив для многих стандартных языков программирования. метод split () используется в Python также для разделения строки на слова и возвращает список слов на основе разделителя. Как использовать метод split () в Python, показано в этой статье на различных примерах. Spyder3 Редактор используется здесь для написания и выполнения скрипта Python.Синтаксис split ():
string.split (разделитель, maxsplit)
Здесь оба аргумента этого метода необязательны. Разделитель работает как разделитель строки, и строковое значение разбивается на более мелкие слова на основе разделителя.Если этот аргумент опущен, то в качестве разделителя по умолчанию используется пробел. maxsplit используется для определения предела слов, которые будут разделены. Если этот аргумент опущен, вся строка будет проанализирована для разделения и создания списка всех слов на основе разделителя.
Пример-1: Разделить строку на основе пробела
В следующем примере показано использование метода split () без аргументов. Создайте файл python со следующим сценарием, чтобы увидеть, как он работает.Он разделит текст на строки в зависимости от пробела и вернет кортеж строк.
#! / usr / bin / env python3# Определить строковое значение
text = «Здравствуйте, добро пожаловать в LinuxHint»
# Распечатать сообщение
print («Список после разделения строки: \ n»)
# Распечатать список на основе пробелов
print (text.split ())
Выход:
Результат показан в правой части изображения. В сценарии переменная text содержит строку из четырех слов, а на выходе отображается список из четырех элементов.
Пример-2: Разделить строку на основе запятой
Вы можете использовать любой символ или строку в качестве разделителя в методе split () . В следующем примере в качестве разделителя используется запятая (,) . Создайте файл Python со следующим скриптом. В качестве входных данных будет использоваться строковое значение, разделенное запятыми. метод split () создаст список строк путем разделения входного значения на основе запятой (,) . Затем значения списка будут напечатаны с использованием цикла «for» .
#! / Usr / bin / env python3
# Определите строку названий стран
country = input («Введите названия стран через запятую \ n»)
# Разделите строку на основе запятой
listCountry = country.split (‘,’)
# Распечатать сообщение
print («\ nСписок стран:»)
для i в диапазоне (0, len (listCountry)):
print (listCountry [i])
Выход:
Результат показан в правой части изображения. Список стран, разделенных запятыми (,), принимается в качестве входного значения.После разделения ввода по запятой название страны печатается в каждой строке.
Пример-3: Разделить строку на основе определенного слова
Создайте файл Python с помощью следующего сценария. В этом примере в качестве разделителя используется строка «» и «». После разделения значения на текст список возврата сохраняется в переменной langval . Значения списка печатаются путем объединения с другой строкой с использованием цикла « для» .
#! / usr / bin / env python3# Определите строковое значение с помощью ‘и’
text = «Bash, Python и PHP»
# Разделить строку на основе «и»
langval = text.split («and»)
# Распечатать элементы списка, комбинируя другую строку
для i в диапазоне (0, len (langval)):
print («Мне нравится», langval [i])
Выход:
Результат показан в правой части изображения. «Мне нравится» строка добавляется к каждому элементу списка.
Пример-4: Разделить строку на основе лимита (maxsplit)
По умолчанию метод split () делит любой текст на все возможные части на основе значения разделителя . maxsplit Параметр используется в методе split () для ограничения разделенных частей строки. Создайте файл Python со следующим сценарием, чтобы узнать об использовании параметра maxsplit метода split () . В переменной назначается текстовое значение с двоеточием (:) , человек .В первый раз вызывается метод split () с пределом 3 как значение maxsplit . Во второй раз вызывается метод split () с пределом 2 как значение maxsplit . В третий раз вызывается метод split () с пределом 1 как значение maxsplit . Цикл для используется для печати каждого элемента списка после вызова метода split () .
#! / usr / bin / env python3# Определите строковое значение с помощью ‘:’
person = «Jack: Manager: Bata Company: [email protected]»
print («——— Разделить на 3 ‘:’ ———«)
# Разделить строку на основе на «:» и лимит 3
val1 = person.split («:», 3)
# Распечатать значения списка
для i в диапазоне (0, len (val1)):
print («part», i + 1, «-«, val1 [i])
print («——— Разделить на 2 ‘:’ ———«)
# Разделить строку на основе «:» и ограничить 2
val2 = person.split ( «:», 2)
# Распечатать значения списка
для i в диапазоне (0, len (val2)):
print («part», i + 1, «-«, val2 [i])
print («——— Разделить на 1 ‘:’ ———«)
# Разделить строку на основе «:» и ограничить 1
val3 = person.split («:», 1)
# Распечатать значения списка
для i в диапазоне (0, len (val3)):
print («part», i + 1, «-«, val3 [i])
Выход:
Результат показан в правой части изображения. Текст делится на четыре части после первого вызова split () , потому что он разделил текст на 3 двоеточия (:). Текст делится на три части после второго вызова split () , потому что он разделил текст на два двоеточия.И текст делится на две части после третьего вызова split (), потому что он разделил текст на основе одного двоеточия (:).
Вывод:
split () — полезный метод для разделения любого строкового значения на несколько подстрок в зависимости от требований. Как строковые значения могут быть разделены и проанализированы на основе пробела, запятой, двоеточия или конкретной строки, обсуждается в этой статье с необходимыми примерами. Надеюсь, после прочтения этого руководства вы сможете правильно разделить строковые данные в Python.
Посмотреть видео автора: здесь
Объяснение использования Split в Python
Функция split — это инструмент манипуляции строками в Python. Строка — это набор или массив символов в последовательности, записанной в одинарных, двойных или тройных кавычках; символ ‘a’ в Python также считается строковым значением с длиной 1 . Функция разделения используется, когда нам нужно разбить большую строку на более мелкие.
Строки представляют собой значения символов Юникода и являются изменяемыми по своей природе, что означает, что значение строки не может быть изменено после того, как оно было объявлено.
Пример объявления и отображения строки в Python:
name = «Python» print (name [0])
Хотя мы не можем изменить строку после объявления, мы можем разбить строку на разные строки, используя множество различных способов в Python.
В этой статье мы углубимся и поймем, как использовать Split в Python.Мы начнем с понимания того, что делает функция Split, для чего нужна такая функция и как мы работаем с этой функцией. Затем мы рассмотрим параметры разделения в Python и различные способы использования функции разделения.
Что такое разделение в Python?
Если вы работали над конкатенацией строк, которые используются для слияния или объединения разных строк в одну, функция разделения выполняет прямо противоположное ей. Функция просматривает строку и разделяет ее, когда встречает разделитель, который был указан ранее.
Однако, если функция не находит определенного разделителя, по умолчанию используется пробел.
Синтаксис функции Split следующий:
string.split (separator, max)
Разделитель — это предварительно определенный символ, который помещается между каждой переменной в выводе. Функция разделения зависит от значения переменной-разделителя.
Зачем нужна функция разделения?
Функция Split возвращает список слов после разделения строки или строки с помощью разделителя строки , такого как запятая (,) .
Некоторые достоинства использования функции Split в Python перечислены ниже:
- Это полезно в ситуациях, когда вам нужно разбить большую строку на более мелкие.
- Если разделитель отсутствует в функции разделения, пробелы считаются разделителями.
- Функция разделения помогает легко анализировать и делать выводы.
- Это также полезно при декодировании строк, зашифрованных каким-либо образом.
Как работать с функцией разделения?
Строковые переменные в Python содержат числовые и буквенно-цифровые данные, которые используются для хранения каталогов данных или отображения различных сообщений.Это очень полезные инструменты для программистов, работающих на Python.
Метод .split () — полезный инструмент для работы со строками. Он возвращает список строк после того, как основная строка разделена разделителем. Метод возвращает одну или несколько новых строк, и подстроки также возвращаются в типе данных списка.
Вот простой пример функции разделения:
x = «красный, оранжевый, желтый» x.split («,») [«Красный», «оранжевый», «желтый»]
Здесь мы объявили строковую переменную x с тремя строками.Когда функция разделения реализована с запятой (, ) в качестве разделителя, строки разделяются запятыми между ними.
Что такое параметры разделения в Python?
Функция Split анализирует строку и разделяет ее всякий раз, когда программа встречает предопределенный разделитель . Оптимизация выполнения программы зависит в основном от трех различных параметров:
- Разделитель — указывает Python, где разорвать строку.Он работает как разделитель, и строка разделяется в зависимости от предварительно определенного разделителя. Это необязательно, что означает, что если разделитель не указан в split, функция использует пробел в качестве разделителя по умолчанию. Однако, если разделитель указан как строковое значение, вывод будет пустой строкой.
- Maxsplit — указывает, сколько раз строка может быть разбита. Это также необязательно, и его значение по умолчанию — -1 , что означает отсутствие ограничений на количество раз, когда строка может быть разделена.Если maxsplit не определен в функции разделения, сканируется вся строка, и Python разделяет ее всякий раз, когда встречается разделитель.
- Возврат — возвращает список строк после того, как функция разделения разбивает строку по указанному разделителю.
Какие существуют способы использования функции разделения?
Python состоит из нескольких различных способов реализации функции Split. Различные методы объясняются ниже:
Python состоит из нескольких различных способов, с помощью которых мы можем реализовать функцию разделения.Различные методы объясняются ниже:
Разделение строки на пробел
Метод split () в Python разбивает строку на пробелы, если в функции не указан аргумент. Пример разделения строки без аргумента показан ниже:
str = «Python - это круто» print (str.split ())
Вывод приведенного выше кода выглядит следующим образом:
['Python', 'is', 'cool']
В приведенном выше примере мы объявили переменную str с строковое значение.Вы можете видеть, что мы не определили никаких аргументов в функции Split, поэтому строка разделяется пробелами.
Разделение строки при первом появлении
Когда мы разбиваем строку на основе первого вхождения символа, это приводит к двум подстрокам — первая подстрока содержит символы перед разделителем, а вторая подстрока содержит символ после разделителя.
Пример разделения строки при первом появлении символа показан ниже:
str = «abcabc» печать (ул.split (c))
Вывод приведенного выше кода выглядит следующим образом:
['ab', 'abc']
Здесь мы объявили str со строковым значением « abcabc » . Функция разделения реализована с помощью разделителя «c» , а значение maxsplit принимается равным 1 . Всякий раз, когда программа встречает в строке «c» , она разделяет строку на две подстроки — первая строка содержит символы до «c» , а вторая содержит символы после «c».
Разделение файла на список
Когда вы хотите разделить файл на список, в результате оказывается другой список, в котором каждый из элементов является строкой вашего файла. Предположим, у вас есть файл, содержащий две строки «Первая строка \ nSecond Line». Результатом функции разделения будет [«Первая строка», «Вторая строка»]. Вы можете выполнить разделение файла с помощью встроенной функции Python splitlines ( ) .
Предположим, у вас есть файл с именем «sample.txt» , который содержит две строки по две строки в каждой строке соответственно — «Привет!», «Вы изучаете Python» .
Пример разделения «sample.txt» на список показан ниже:
f = open («sample.txt», «r») info = f.read () печать (info.splitlines ()) f.close ()
Вывод приведенного выше кода выглядит следующим образом:
[«Привет, вы изучаете Python»]
У нас есть образец файла «.txt », который открывается в режиме чтения (« r ») с использованием функции open ( ) . Затем мы вызвали f.read () , который возвращает весь файл в виде строки. Реализована функция splitlines ( ) , которая разбивает файл на две разные подстроки, которые являются двумя строками, содержащимися в файле «sample.txt» .
Разделение строки символом новой строки (\ n)
Вы можете разделить строку, используя символ новой строки (\ n) в Python.Мы возьмем строку, которая будет разделена символом новой строки, а затем разделим строку. Символ новой строки будет действовать как разделитель в функции разделения.
Пример разделения строки символом новой строки показан ниже:
str = «Welcome \ nto \ nPython \ nSplit» print (str.split ('\ n'))
Вывод приведенного выше кода выглядит следующим образом:
['Welcome', 'to', 'Python', 'Split']
Здесь мы объявили переменная str со строкой, содержащей символы новой строки (\ n) между исходной строкой.Функция разделения реализована с помощью разделителя “\ n” . Когда функция видит символ новой строки, она разделяет строку на подстроки.
Вы также можете выполнить разделение по символу новой строки с помощью функции splitlines ( ) .
Разделение строки на табуляцию (\ t)
Табуляторы считаются escape-символами «\ t» в текстовых (.txt) файлах. Когда мы разделяем строку на вкладки, функция Split разделяет строку на каждой вкладке, и в результате получается список подстрок.Управляющий символ «\ t» используется в качестве разделителя в функции разделения.
Пример разделения строки по табуляции показан ниже:
str = «Python \ tis \ ta \ tscripting \ tlanguage» print (str.split («\ t»))
Вывод приведенного выше кода выглядит следующим образом:
['Python', 'is', 'a', 'scripting', 'language']
Здесь , переменная str объявляется строкой с табуляцией («\ t»). Функция разделения выполняется с «\ t» в качестве разделителя.Всякий раз, когда функция находит escape-символ, она разбивает строку, и на выходе получается список подстрок.
Разделение строки запятой (,)
Мы также можем разделить строку запятыми («,») , где запятые действуют как разделители в функции разделения. Результатом является список строк, содержащихся между запятыми в исходной строке.
Пример разделения строки запятыми показан ниже:
str = «Python, был выпущен в 1991 году» печать (ул.split («,»))
Вывод приведенного выше кода выглядит следующим образом:
['Python', 'was', 'Release', 'in', '1991']
Здесь переменная str объявляется строкой с запятыми («, ») между ними . Функция разделения реализована с « », в качестве разделителя. Всякий раз, когда функция видит символ запятой, она разделяет строку и выводит список подстрок между запятыми в строке str .
Разделение строки с помощью нескольких разделителей
Вы можете разделить строку с помощью нескольких разделителей, указав разные символы в качестве разделителей в функции разделения. Разделитель — это один или несколько символов в последовательности, которые используются для обозначения границ между областями в тексте. Символ запятой («,») или двоеточие («:») является примером разделителя. Строку с несколькими разделителями можно разделить с помощью функции re.split () .
Пример разделения строки с несколькими разделителями показан ниже:
import re str = 'Python \ nis; an * easy \ nlanguage ' print (re.split ('; |, | \ * | \ n', str))
Вывод приведенного выше кода выглядит следующим образом:
['Python', 'is', 'an', 'easy ',' language ']
В приведенном выше примере мы импортируем встроенный модуль re , который импортирует библиотеки и функции регулярных выражений . Переменная str объявляется строкой с несколькими разделителями, такими как новая строка (\ n) , точка с запятой (;), или звездочка (*). Функция re.split () реализована с разными разделителями в качестве разделителя, и на выходе получается список строк без разделителей.
Разделение строки на список
Когда вы разбиваете строку на список вокруг разделителя, на выходе получается разделенный список подстрок. Вы можете использовать любой разделитель в качестве разделителя в функции Split, чтобы разделить строку в список.
Пример разделения строки на список показан ниже:
str = «Нью-Йорк-Техас-Колумбия» печать (ул.split («-»))
Вывод приведенного выше кода выглядит следующим образом:
['Нью-Йорк', 'Техас', 'Колумбия']
Переменная str объявляется строкой с тире. (- ) между ними, и функция разделения выполняется с тире (-) в качестве разделителя. Функция разбивает строку всякий раз, когда встречает тире, и в результате получается список подстрок.
Разделение строки по хэшу (#)
Вы также можете разделить любую строку с помощью хеш-символа (#) в качестве разделителя.Функция Split принимает хэш (#) в качестве разделителя, а затем разделяет строку в точке, где хеш найден. Результат — список подстрок.
Пример разбиения строки с помощью хеша показан ниже:
str = «Python # isa # многоцелевой # язык» print (str.split («#»))
Вывод приведенного выше кода выглядит следующим образом:
['Python', 'is a', 'multi-target', 'language']
Переменная str объявляется строкой с хеш-символами (# ) между ними.Функция Split выполняется с хешем в качестве разделителя. Функция разбивает строку везде, где она находит хэш ( #) , и результатом является список подстрок, исключая символ решетки.
Разделение строки с помощью параметра maxsplit
Параметр maxsplit определяет максимальное количество разделений, которое может выполнить функция. Вы можете выполнить разделение, указав значение для параметра maxsplit. Если вы поместите пробелы в качестве разделителя и значение maxsplit будет 2 , функция Split разбивает строку на список с максимум двумя элементами.
Пример разбиения строки с помощью параметра maxsplit показан ниже:
subject = «Maths Science English History Geography» print (subject.split («», 2))
Вывод приведенного выше кода выглядит следующим образом:
['Maths', 'Science', 'English History Geography']
Здесь вы можете увидеть переменную str объявляется строкой с разными именами субъектов. Функция Split использует пробел («» ) в качестве разделителя, а максимальное количество разделений или maxsplit составляет 2 .Первые две строки « Maths » и «Science» разделены, а остальные составляют одну строку.
Разделение строки на массив символов
Вы можете разделить строку на массив символов с помощью функции list ( ) . Результатом является список, в котором каждый элемент представляет собой определенный символ.
Пример разделения строки на массив символов показан ниже:
str = «PYTHON» print (list (str))
Вывод приведенного выше кода выглядит следующим образом:
['P', 'Y', 'T', 'H', 'O', 'N']
Здесь, переменная str является строкой.Строка разделяется на отдельные символы с помощью функции list ( ) , и результатом является список элементов с каждым символом строки.
Разделение строки с помощью подстроки
Вы можете получить строку после или перед определенной подстрокой с помощью функции split (). Определенная строка задается в качестве разделителя в функции Split, и результатом становятся строки до и после этой конкретной строки.
Пример разделения строки с помощью подстроки показан ниже:
fruit = «Апельсин, банан, манго, яблоко, вишня» печать (фрукты.split («Манго»))
Вывод приведенного выше кода выглядит следующим образом:
['Orange Banana', 'Apple Cherry']
Здесь переменная fruit представляет собой строку с названиями разных фруктов. Мы берем строку «Mango» в качестве разделителя в функции Split. Когда функция находит строку «Манго», , она разбивает всю строку на две подстроки — одну подстроку перед «Манго» и другую подстроку после «Манго».
Разные советы по функции разделения
Поскольку мы подошли к концу статьи, позвольте мне дать вам несколько полезных советов по функции разделения:
- Если maxsplit не определен в функции и их достаточно разделители в строке, результат будет иметь длину maxsplit +1 .
- Если вы хотите рекомбинировать строку, которая уже была разделена в Python, вы можете выполнить конкатенацию строк.
- Функция Python Split работает только со строковыми переменными. Если вы столкнетесь с какой-либо проблемой при работе с split, вы можете заставить компилятор обрабатывать переменную как строку с str (x).
Заключение
Функция .split () в Python — очень полезный инструмент для разделения строк на куски в зависимости от разделителя, который может быть любым, начиная с символов, цифр или даже текста.Вы также можете указать количество разделений, которое должна выполнять функция, с помощью maxsplit , который используется для извлечения определенного значения или текста из любой заданной строки с помощью списка или массивов.
Вот ключевые области, в которых вы должны хорошо разобраться, прочитав эту статью:
- Что такое строка.
- Что такое Сплит и зачем он нужен.
- Как работает функция Python Split.
- Что такое параметры разделения.
- Какие существуют различные способы разделения строк в Python
- Важные советы по разделению
Вы узнали о функции разделения Python и различных способах реализации в вашей программе.После этого вы можете приступить к работе над любым проектом, который требует использования Split.
Если вы хотите расширить свои знания о строках и функции разделения в Python, вы можете обратиться к официальной документации Python. Кроме того, не забудьте ознакомиться с оставшимися учебными пособиями, которые доступны вам в свободном доступе.
Python String Split — с примерами
В Python строку можно разделить на более мелкие части с помощью функции split ()
. split ()
— это строковая функция, которая возвращает список слов в строке, разделенных переданной строкой-разделителем. По умолчанию любой пробел является разделителем.
s = "Python - забавный язык программирования"
печать (s.split ())
Выход:
['python', 'is', 'a', 'fun', 'programming', 'language']
Содержание
Синтаксис
Ниже приведен синтаксис для использования функции split ()
:
ул.сплит (сеп, макссплит)
Параметры:
- sep ( необязательно) : разделитель, используемый для разделения строки. Это необязательный параметр, и если он не указан, любой пробел в Python является разделителем.
- maxsplit: ( необязательно) : Задает максимальное количество выполняемых разделений. Его значение по умолчанию -1, что означает отсутствие ограничений на разбиение.
Возврат:
Список строк, полученных в результате разделения данной строки переданным разделителем.
Примечание: В Python есть ряд символов, которые считаются пробельными символами. Если разделитель не передан, строка разделяется при появлении любого из этих пробельных символов. Ниже приведен список таких символов в Python:
-
''
— Пространство -
'\ t'
— Горизонтальная табуляция -
'\ n'
— Новая строка -
'\ v'
— Вертикальная табуляция -
'\ f'
— Подача -
'\ r'
— Возврат каретки
Вы можете использовать строковую функцию isspace ()
, чтобы проверить, все ли символы в строке являются пробельными или нет.
Примеры
Пример 1: Использование разделителя по умолчанию.
s = "Python - это увлекательный язык программирования \ n"
печать (s.split ())
Выход:
['python', 'is', 'a', 'fun', 'programming', 'language']
В приведенном выше примере, поскольку разделитель не предоставляется, используется разделитель по умолчанию (любой символ пробела). Мы видим, что строка была разделена не только на пробелы ''
, но и на символ новой строки '\ n'
, поскольку это также пробельный символ.
Пример 2: Использование настраиваемого разделителя.
s = "язык программирования python-is-a-fun"
print (s.split ("-"))
Выход:
['python', 'is', 'a', 'fun', 'язык программирования']
В приведенном выше примере мы используем тире '-'
в качестве разделителя. И мы можем сказать, что строка была разделена на все вхождения '-'
. Поскольку нет '-'
между 'программированием'
и 'языком'
, они не были разделены.
Пример 3: Указание maxsplit
s = "Python - забавный язык программирования"
печать (s.split (maxsplit = 1))
Выход:
['python', 'забавный язык программирования']
В приведенном выше примере мы указали максимальное количество разделений, равное 1
. Следовательно, строка была разделена только один раз, начиная слева.
Для получения дополнительной информации о функции split () python обратитесь к документации python.
Другие статьи о строках Python:
В этом руководстве мы рассмотрели, как разделить строки в Python с помощью функции split (). Если вы нашли эту статью полезной, поделитесь ею! Чтобы получить больше таких статей, подпишитесь на нас.
Если вы новичок, который хочет начать свой путь в науке о данных и изучить Python, ознакомьтесь с нашей серией статей «Python для науки о данных».
Разделение строки с помощью белого пространства в Python
- Используйте метод String
split ()
для разделения строки в Python - Используйте
re.split ()
для разделения строки в Python
В этом руководстве будет показано, как разделить строку по пробелам в качестве разделителей в Python.
Разделение строк в Python означает разрезание одной строки на массив строк в зависимости от используемого разделителя или разделителя.
Например, если строка инициализирована как Hello, World! Я здесь.
существует, разделение его пробелом в качестве разделителя приведет к следующему результату.
['Привет,', 'Мир!', 'Я', 'есть', 'здесь.']
Использование метода String
split ()
для разделения строки в Python Встроенный строковый метод Python split ()
- идеальное решение для разделения строк с использованием пробелов. По умолчанию метод split ()
возвращает массив подстрок, полученных в результате разделения исходной строки с использованием пробела в качестве разделителя.
Например, возьмем тот же пример строки Hello, World! Я здесь.
. Мы будем использовать метод split ()
для разделения строки на массив подстрок.
string_list = 'Привет, мир! Я здесь. '. Split ()
печать (список_строк)
Результат такой, как ожидалось:
['Hello,', 'World!', 'I', 'am', 'here'].
Кроме того, метод split ()
также автоматически удаляет начальные и конечные пробелы и обрабатывает их как один разделитель пробелов.
Давайте изменим предыдущий пример, включив в него случайные начальные, конечные и последовательные пробелы.
string_list = 'Привет, мир! Я здесь.'.расколоть()
печать (список_строк)
Другой сценарий, который метод split ()
обрабатывает автоматически, - это табуляция, перевод строки и возврат каретки, обозначенные как \ t
, \ n
и \ r
, за исключением литерала пробела. Упомянутые форматы пробелов также считаются разделителями и объектами для обрезки.
Вывод:
['Hello,', 'World!', 'I', 'am', 'here.']
Например:
string_list = 'Hello, World! Я здесь.\ nЯ тоже \ там, \ rand здесь. '. split ()
печать (список_строк)
Вывод:
['Hello,', 'World!', 'I', 'am', 'here.', 'I', 'am', 'также', 'здесь', 'тоже ,', 'и здесь.']
Принимая во внимание эти факторы, вам не нужно беспокоиться о явном обрезании каждого пробела перед выполнением функции. Это удобная функция.
Используйте
re.split ()
для разделения строки в Python Модуль Python RegEx (регулярные выражения) re
также имеет предопределенную функцию split ()
, которую мы можем использовать вместо встроенной -в методе split ()
.Однако обратите внимание, что re.split ()
медленнее по сравнению со встроенным методом split ()
с точки зрения производительности.
Функция re.split ()
принимает два основных параметра, строку RegEx и строку для выполнения функции разделения. Ключевое слово RegEx, представляющее пробел, - \ s
. \ s
- это сопоставление всех типов пробелов, включая упомянутые выше ( \ n
, \ t
, \ r
, \ f
).
Например, объявите строку и выполните re.split ()
, чтобы разбить их на массив подстрок. Чтобы принять во внимание конечные и ведущие пробелы, добавьте знак +
к строке RegEx, чтобы сопоставить один или несколько последовательных пробелов как единую группу.
Кроме того, добавьте ключевое слово r
в строку RegEx, чтобы обеспечить правильную обработку управляющих последовательностей Python.
импорт ре
exStr = "Hello, World! \ nДобро пожаловать в мою статью \ статью."
печать (re.split (r '\ s +', exStr))
Используйте
re.findall ()
вместо re.split ()
для разделения строки в Python В качестве альтернативы также можно использовать re.findall ()
. Функция findall ()
работает полностью противоположно функции split ()
. Эта функция находит все подстроки, которые соответствуют заданной строке RegEx, а метод split ()
использует строку RegEx в качестве разделителя.
Чтобы использовать функцию findall ()
для разделения строки с использованием пробелов, отмените ключевое слово пробела \ s
, сделав букву заглавной ( \ S
). findall ()
принимает те же параметры, что и split ()
.
импорт ре
exStr = "Привет, мир! \ nДобро пожаловать в мою статью \ статью."
печать (re.findall (r '\ S +', exStr))
Обе функции выдадут одинаковый результат:
['Hello,', 'World!', 'Welcome', 'to', 'my', 'tutorial', 'article.']
Таким образом, лучший и наиболее оптимальный способ разбить строку с использованием пробелов в качестве разделителя - это встроенный метод split ()
.Он прикреплен к строковому объекту и по умолчанию учитывает начальные и конечные пробелы.