Как привести строку к нижнему регистру c
Перейти к содержимому

Как привести строку к нижнему регистру c

  • автор:

Как привести строку к нижнему регистру c

Как наиболее эффективно перевести символы строки ,которая содержится в STL — евском string — е , в нижний регистр (lower case).Сам класс ,как я вижу , не предоставляет таких возможностей .

Re: Перевод STL string в нижний регистр

От: Андрей
Дата: 20.09.03 09:25
Оценка:

Здравствуйте, ZZTop, Вы писали:

ZZT>Как наиболее эффективно перевести символы строки ,которая содержится в STL — евском string — е , в нижний регистр (lower case).Сам класс ,как я вижу , не предоставляет таких возможностей .

А std::ctype::tolower тебе не подойдет?

Re: Перевод STL string в нижний регистр

От: dad
Дата: 23.09.03 11:11
Оценка:

ZZT>Как наиболее эффективно перевести символы строки ,которая содержится в STL — евском string — е , в нижний регистр (lower case).Сам класс ,как я вижу , не предоставляет таких возможностей .

#include #include #include void charToUpper(char& src) < src = _toupper(src); >int main(int argc, char* argv[]) < std::string st = "asdf"; std::for_each(st.begin(),st.end(),charToUpper); std::cout for (std::string::iterator it = st.begin() ; it != st.end(); it ++ ) *it = _tolower(*it); std::cout return 0; >

Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)

Re: Перевод STL string в нижний регистр

От: Alexey Chen
Дата: 23.09.03 11:49
Оценка: +1

Здравствуйте, ZZTop, Вы писали:

ZZT>Как наиболее эффективно перевести символы строки ,которая содержится в STL — евском string — е , в нижний регистр (lower case).Сам класс ,как я вижу , не предоставляет таких возможностей .

реально это цикл по смволам с выполнением a[x] = tolower(a[x])

Re[2]: Перевод STL string в нижний регистр

От: race1
Дата: 06.07.04 11:04
Оценка:

Здравствуйте, dad, Вы писали:

ZZT>>Как наиболее эффективно перевести символы строки ,которая содержится в STL — евском string — е , в нижний регистр (lower case).Сам класс ,как я вижу , не предоставляет таких возможностей .

dad> for (std::string::iterator it = st.begin() ; it != st.end(); it ++ )
dad> *it = _tolower(*it);

для русских сиволов неработает. ни _tolower, ни tolower. как русские символы к нижнему преобразовать регистру?

Re[3]: Перевод STL string в нижний регистр

От: ArtDenis
Дата: 06.07.04 11:11
Оценка: 1 (1)

Здравствуйте, race1, Вы писали:

dad>> for (std::string::iterator it = st.begin() ; it != st.end(); it ++ )
dad>> *it = _tolower(*it);
r> для русских сиволов неработает. ни _tolower, ни tolower. как русские
r> символы к нижнему преобразовать регистру?

Смотри в сторону std::locale

Posted via RSDN NNTP Server 1.9 beta
Re[3]: Перевод STL string в нижний регистр

От: Sergey
Дата: 06.07.04 11:18
Оценка: 2 (1)

Hello, race1!
You wrote on Tue, 06 Jul 2004 11:04:33 GMT:

dad>> for (std::string::iterator it = st.begin() ; it != st.end(); it ++ )
dad>> *it = _tolower(*it);

r> для русских сиволов неработает. ни _tolower, ни tolower. как русские
r> символы к нижнему преобразовать регистру?

setlocale(LC_ALL, «rus») вызывать не пробовал?

With best regards, Sergey.

Posted via RSDN NNTP Server 1.9 beta
Одним из 33 полных кавалеров ордена «За заслуги перед Отечеством» является Геннадий Хазанов.
Re[4]: Перевод STL string в нижний регистр

От: race1
Дата: 06.07.04 12:30
Оценка:

Здравствуйте, Sergey, Вы писали:

S>setlocale(LC_ALL, «rus») вызывать не пробовал?

Re[5]: Перевод STL string в нижний регистр

От: dad
Дата: 06.07.04 13:03
Оценка:

S>>setlocale(LC_ALL, «rus») вызывать не пробовал?

R>работает, спасибо!

хотя не очень логично, если используешь stl
лучше делать так:
std::locale()
use_facet
и иже сними (забыл к чертовой бабушке синтаксис весь)

Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)

Re[6]: Перевод STL string в нижний регистр

От: Sergey
Дата: 06.07.04 13:33
Оценка:

Hello, dad!
You wrote on Tue, 06 Jul 2004 13:03:38 GMT:

S>>> setlocale(LC_ALL, «rus») вызывать не пробовал?

R>> работает, спасибо!

d> хотя не очень логично, если используешь stl
d> лучше делать так:
d> std::locale()
d> use_facet
d> и иже сними (забыл к чертовой бабушке синтаксис весь)

std::locale loc("rus"); for (std::string::iterator it = st.begin() ; it != st.end(); it ++ ) *it = use_facetchar> >(loc).tolower(*it);

Ну и чем это в данном случае лучше? Синтаксис страшный, виртуальные
функции вызываются. Вот когда сразу с двумя локалями надо крутиться,
std::locale может и лучше, а если только одна локаль нужна — сишный рантайм
рулит.

With best regards, Sergey.

Posted via RSDN NNTP Server 1.9 beta
Одним из 33 полных кавалеров ордена «За заслуги перед Отечеством» является Геннадий Хазанов.
Re[7]: Перевод STL string в нижний регистр

От: dad
Дата: 06.07.04 16:17
Оценка:

R>>> работает, спасибо!

d>> хотя не очень логично, если используешь stl
d>> лучше делать так:

S>

S>std::locale loc("rus"); S>for (std::string::iterator it = st.begin() ; it != st.end(); it ++ ) S> *it = use_facetchar> >(loc).tolower(*it); S>

— можно std::locale loc(«.1251») или ту кодовую страницу в которйо у тебя текст (более явно);
S>Ну и чем это в данном случае лучше?

— я граматически неверно написал. В данном случае — нелогично, логично (если используешь stl)
использовать функциональность stl (практически нет разницы, теоретически — crt и stl разные вещи)
— смешивать ООП и процедры дурной стиль

S>Синтаксис страшный, виртуальные функции вызываются.
— что до страшного синтаксиса, так это вопрос не сюда
— про виртуальные функции даже не знаю, что ответить

S>Вот когда сразу с двумя локалями надо крутиться,
S>std::locale может и лучше, а если только одна локаль нужна — сишный рантайм
S>рулит.

— теретически, ты всегда работаешь с несколькими локалями (системная локаль, локаль пользователя, локаль
обрабатываемых данных), то, что они могут совпадать в каких то задачах не повод
переключать контекст всей задачи

Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)

Re[8]: Перевод STL string в нижний регистр

От: Sergey
Дата: 07.07.04 08:35
Оценка:

Hello, dad!
You wrote on Tue, 06 Jul 2004 16:17:24 GMT:

d> — можно std::locale loc(«.1251») или ту кодовую страницу в которйо у
d> тебя текст (более явно);

Можно. И в сишной локали — тоже.

S>> Ну и чем это в данном случае лучше?

d> — я граматически неверно написал. В данном случае — нелогично, логично
d> (если используешь stl) использовать функциональность stl (практически
d> нет разницы, теоретически — crt и stl разные вещи)

Ну и что, что разные? stl специально спроектирован с минимумом внутренних
зависимостей. string и locale никак не связаны.

d> — смешивать ООП и процедры дурной стиль

Тебя обманули Я тоже раньше так считал. Потом пришел к выводу, что дурной
стиль — это когда написано сложнее, чем требуется и жрет больше ресурсов,
чем возможно — причем с меньшими усилиями.

S>> Синтаксис страшный, виртуальные функции вызываются.
d> — что до страшного синтаксиса, так это вопрос не сюда

Это не вопрос, а утверждение

d> — про виртуальные функции даже не знаю, что ответить

А ничего про них не скажешь — std::locale работает заведомо медленней
сишной.

S>> Вот когда сразу с двумя локалями надо крутиться,
S>> std::locale может и лучше, а если только одна локаль нужна — сишный
S>> рантайм рулит.

d> — теретически, ты всегда работаешь с несколькими локалями (системная
d> локаль, локаль пользователя, локаль обрабатываемых данных),

Ну это ты несколько загнул — системная локаль обычно никого не
интересует.

d> то, что они могут совпадать в каких то задачах не повод переключать
d> контекст всей задачи

Как раз таки вполне резонно во многих случаях переключать локаль для всей
задачи.

With best regards, Sergey.

Posted via RSDN NNTP Server 1.9 beta
Одним из 33 полных кавалеров ордена «За заслуги перед Отечеством» является Геннадий Хазанов.
Re[9]: Перевод STL string в нижний регистр

От: dad
Дата: 07.07.04 10:22
Оценка:

S>>> Ну и чем это в данном случае лучше?

d>> — я граматически неверно написал. В данном случае — нелогично, логично
d>> (если используешь stl) использовать функциональность stl (практически
d>> нет разницы, теоретически — crt и stl разные вещи)

S>Ну и что, что разные? stl специально спроектирован с минимумом внутренних
S>зависимостей. string и locale никак не связаны.

фактически ты (используя crt как есть) работаешь с другим языком программирования (c)

d>> — смешивать ООП и процедры дурной стиль

S>Тебя обманули Я тоже раньше так считал. Потом пришел к выводу, что дурной

меня не обманули, я сам пришел к такому выводу. (кстати, пример я написал отвратный).

S>>> Синтаксис страшный, виртуальные функции вызываются.
d>> — что до страшного синтаксиса, так это вопрос не сюда

S>Это не вопрос, а утверждение

Утверждление заведомо неверное, страшный синтаксис это когда макросы в си

d>> — про виртуальные функции даже не знаю, что ответить

S>А ничего про них не скажешь — std::locale работает заведомо медленней
S>сишной.

не фахт, во-первых зависит от реализации, во вторых возможна оптимизация на уровне компилятора.

S>>> Вот когда сразу с двумя локалями надо крутиться,
S>>> std::locale может и лучше, а если только одна локаль нужна — сишный
S>>> рантайм рулит.

d>> — теретически, ты всегда работаешь с несколькими локалями (системная
d>> локаль, локаль пользователя, локаль обрабатываемых данных),

S>Ну это ты несколько загнул — системная локаль обычно никого не
S>интересует.

. может быть обычно она не интерсует тебя?
ты навязываешь человеку стереотип — функции мол быстрее, используй их все остальное тебе «обычно» не понадобится.
при этом предлагаешь ему воспользоваться для обработки контейнера функциями библиотеки другого языка (ну это я утрирую конечно).

d>> то, что они могут совпадать в каких то задачах не повод переключать
d>> контекст всей задачи

S>Как раз таки вполне резонно во многих случаях переключать локаль для всей
S>задачи.

Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)

Re[10]: Перевод STL string в нижний регистр

От: Sergey
Дата: 07.07.04 11:32
Оценка:

Hello, dad!
You wrote on Wed, 07 Jul 2004 10:22:33 GMT:

S>> Ну и что, что разные? stl специально спроектирован с минимумом
S>> внутренних зависимостей. string и locale никак не связаны.

d> фактически ты (используя crt как есть) работаешь с другим языком
d> программирования (c)

Не выдумывай. Правила остаются плюсовыми.

d> меня не обманули, я сам пришел к такому выводу. (кстати, пример я
d> написал отвратный).

Напиши не отвратный Я одно время тоже везде
std::numeric_limits::max() вместо DBL_MAX писал. Потом понял, что в
большинстве случаев это просто глупость. numeric_limits нужен внутри
шаблонов, когда не понятно с каким типом придется работать. То же и с
локалями — обычно достаточно вызвать setlocale. Для более изщренных случаев
нужен std::locale.

d> Утверждление заведомо неверное, страшный синтаксис это когда макросы в
d> си

Весьма узкое у тебя понятие о страшном синтаксисе Тогда подумай, зачем
это разработчики стандарта предусмотрели шаблонную функцию template charT> charT tolower(charT c, const locale& loc) (22.1), которая внутри
зовет use_facet >(loc).tolower(c). Наверно, им тоже синтаксис с
use_facet сильно нравится

d>>> — про виртуальные функции даже не знаю, что ответить

S>> А ничего про них не скажешь — std::locale работает заведомо медленней
S>> сишной.

d> не фахт,

Факт.

d> во-первых зависит от реализации,

Если разработчики этой реализации не полные отморозки, то приведенный ранее
код с сишным рантаймом будет быстрее, чем код с std::locale. Вопрос только в
том, на сколько быстрее. Ну а отморозки редко рантаймы пишут

d> во вторых возможна оптимизация на
d> уровне компилятора.

Ага, щаз. Я уже почти поверил Даже если ты напишешь:

const ctypechar>& facet = use_facet> >(locale("rus"), 0, true); for (std::string::iterator it = st.begin() ; it != st.end(); it ++ ) *it = facet.tolower(*it);

то этот код все равно будет медленней, чем с сишной функцией tolower —
просто потому, что по стандарту ctype::tolower возвращает результат
выполнения виртуальной функции do_tolower.

S>> Ну это ты несколько загнул — системная локаль обычно никого не
S>> интересует.

d> . может быть обычно она не интерсует тебя?

Меня в том числе.

d> ты навязываешь человеку стереотип — функции мол быстрее, используй их
d> все остальное тебе «обычно» не понадобится. при этом предлагаешь ему
d> воспользоваться для обработки контейнера функциями библиотеки другого
d> языка (ну это я утрирую конечно).

Вот то то и оно, что утрируешь. Во-первых, я не навязываю, а советую.
Во-вторых, язык тот же самый — так не любимая тобой функция tolower
почему-то упомянута в параграфе 21.4 стандарта С++

d>>> то, что они могут совпадать в каких то задачах не повод переключать
d>>> контекст всей задачи

S>> Как раз таки вполне резонно во многих случаях переключать локаль для
S>> всей задачи.

d> не вижу повода.

Все очень просто — если надо работать только с русским языком в одной
кодировке, то нефиг думать о том, какие у тебя там в системе локали бывают —
меньше шансов ошибиться. Во многие знания многие печали.

With best regards, Sergey.

Posted via RSDN NNTP Server 1.9 beta
Одним из 33 полных кавалеров ордена «За заслуги перед Отечеством» является Геннадий Хазанов.
Re[11]: Перевод STL string в нижний регистр

От: dad
Дата: 08.07.04 04:54
Оценка:

Здравствуйте, Sergey, Вы писали:
S>меньше шансов ошибиться. Во многие знания многие печали.

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

Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)

Re[7]: Перевод STL string в нижний регистр

От: nobody2
Дата: 08.07.04 10:24
Оценка:

Здравствуйте, Sergey, Вы писали:

S>Ну и чем это в данном случае лучше? Синтаксис страшный, виртуальные
S>функции вызываются. Вот когда сразу с двумя локалями надо крутиться,
S>std::locale может и лучше, а если только одна локаль нужна — сишный рантайм
S>рулит.

Почитай советы (точнее №50) Скота Мейерса по STL — там хорошо про это написано.

Re[8]: Перевод STL string в нижний регистр

От: dad
Дата: 08.07.04 10:26
Оценка:

S>>Ну и чем это в данном случае лучше? Синтаксис страшный, виртуальные
S>>функции вызываются. Вот когда сразу с двумя локалями надо крутиться,
S>>std::locale может и лучше, а если только одна локаль нужна — сишный рантайм
S>>рулит.

N>Почитай советы (точнее №50) Скота Мейерса по STL — там хорошо про это написано.

а процитировать можешь?

Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)

Re[9]: Перевод STL string в нижний регистр

От: nobody2
Дата: 09.07.04 07:35
Оценка:

Здравствуйте, dad, Вы писали:

dad>а процитировать можешь?

Дословно не могу (книги под рукой нет), но смысл такой:
использовать С-шные setlocale + toupper — не совсем корректно из-за использования глобальных переменных setlocale’ом.
Он рекомендует std::locale + std::use_facet + std::Facet::toupper.
Для ускорения возможно использовать интервальную функцию std::Facet::toupper.

Сори, детали не помню, но если очень нужно — могу потом привести.

Re[10]: Перевод STL string в нижний регистр

От: dad
Дата: 09.07.04 15:06
Оценка:

N>Он рекомендует std::locale + std::use_facet + std::Facet::toupper.
N>Для ускорения возможно использовать интервальную функцию std::Facet::toupper.

приятно, что со мной хоть кто то согласен

N>Сори, детали не помню, но если очень нужно — могу потом привести.

да не, просто интересно было.

Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)

Как преобразовать строки в нижний регистр в R (с примерами)

Вы можете использовать встроенную в R функцию tolower() для преобразования строк в нижний регистр.

#convert string to lowercase tolower(string_name) 

В следующих примерах показано, как использовать эту функцию на практике.

Пример 1. Преобразование одной строки в нижний регистр

Следующий код показывает, как преобразовать одну строку в нижний регистр в R:

#create string my_string  

Обратите внимание, что функция tolower() преобразует все символы строки в нижний регистр.

Пример 2. Преобразование каждой строки в столбце в нижний регистр

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

#create data frame df  

Пример 3. Преобразование строк в нескольких столбцах в нижний регистр

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

#create data frame df  

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи, связанные со строками в R:

Метод toLowerCase

Метод toLowerCase преобразует символы строки в нижний регистр (из больших букв делает маленькие). При этом мы получаем новую строку, а исходная строка остается неизменной.

Синтаксис

строка.toLowerCase();

Пример

Давайте преобразуем все большие буквы строки в маленькие:

let str = 'ABCDE'; console.log(str.toLowerCase());

Результат выполнения кода:

Пример

Комбинируя метод toLowerCase и метод slice можно задать нижний регистр для отдельных частей строки:

let str = 'ABCDE'; let res = str.slice(0, 1) + str.slice(1).toLowerCase(); console.log(res);

Результат выполнения кода:

Смотрите также

  • метод toUpperCase ,
    который преобразует строку в верхний регистр
  • метод charAt ,
    который возвращает символ в строке

Как привести строку к нижнему регистру c

Рассмотрим основные методы строк, которые мы можем применить в приложениях:

  • isalpha() : возвращает True, если строка состоит только из алфавитных символов
  • islower() : возвращает True, если строка состоит только из символов в нижнем регистре
  • isupper() : возвращает True, если все символы строки в верхнем регистре
  • isdigit() : возвращает True, если все символы строки - цифры
  • isnumeric() : возвращает True, если строка представляет собой число
  • startswith(str) : возвращает True, если строка начинается с подстроки str
  • endswith(str) : возвращает True, если строка заканчивается на подстроку str
  • lower() : переводит строку в нижний регистр
  • upper() : переводит строку в вехний регистр
  • title() : начальные символы всех слов в строке переводятся в верхний регистр
  • capitalize() : переводит в верхний регистр первую букву только самого первого слова строки
  • lstrip() : удаляет начальные пробелы из строки
  • rstrip() : удаляет конечные пробелы из строки
  • strip() : удаляет начальные и конечные пробелы из строки
  • ljust(width) : если длина строки меньше параметра width, то справа от строки добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по левому краю
  • rjust(width) : если длина строки меньше параметра width, то слева от строки добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по правому краю
  • center(width) : если длина строки меньше параметра width, то слева и справа от строки равномерно добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по центру
  • find(str[, start [, end]) : возвращает индекс подстроки в строке. Если подстрока не найдена, возвращается число -1
  • replace(old, new[, num]) : заменяет в строке одну подстроку на другую
  • split([delimeter[, num]]) : разбивает строку на подстроки в зависимости от разделителя
  • partition(delimeter) : разбивает строку по разделителю на три подстроки и возвращает кортеж из трех элементов - подстрока до разделителя, разделитель и подстрока после разделителя
  • join(strs) : объединяет строки в одну строку, вставляя между ними определенный разделитель

Например, если мы ожидаем ввод с клавиатуры числа, то перед преобразованием введенной строки в число можно проверить, с помощью метода isnumeric() введено ли в действительности число, и если так, то выполнить операцию преобразования:

string = input("Введите число: ") if string.isnumeric(): number = int(string) print(number)

Проверка, начинается или оканчивается строка на определенную подстроку:

file_name = "hello.py" starts_with_hello = file_name.startswith("hello") # True ends_with_exe = file_name.endswith("exe") # False

Удаление пробелов в начале и в конце строки:

string = " hello world! " string = string.strip() print(string) # hello world!

Дополнение строки пробелами и выравнивание:

print("iPhone 7:", "52000".rjust(10)) print("Huawei P10:", "36000".rjust(10))
iPhone 7: 52000 Huawei P10: 36000

Поиск в строке

Для поиска подстроки в строке в Python применяется метод find() , который возвращает индекс первого вхождения подстроки в строку и имеет три формы:

  • find(str) : поиск подстроки str ведется с начала строки до ее конца
  • find(str, start) : параметр start задает начальный индекс, с которого будет производиться поиск
  • find(str, start, end) : параметр end задает конечный индекс, до которого будет идти поиск

Если подстрока не найдена, метод возвращает -1:

welcome = "Hello world! Goodbye world!" index = welcome.find("wor") print(index) # 6 # поиск с 10-го индекса index = welcome.find("wor",10) print(index) # 21 # поиск с 10 по 15 индекс index = welcome.find("wor",10,15) print(index) # -1

Замена в строке

Для замены в строке одной подстроки на другую применяется метод replace() :

  • replace(old, new) : заменяет подстроку old на new
  • replace(old, new, num) : параметр num указывает, сколько вхождений подстроки old надо заменить на new. По умолчанию num равно -1, что соответствует первой версии метода и приводит к замене всех вхождений.
phone = "+1-234-567-89-10" # замена дефисов на пробел edited_phone = phone.replace("-", " ") print(edited_phone) # +1 234 567 89 10 # удаление дефисов edited_phone = phone.replace("-", "") print(edited_phone) # +12345678910 # замена только первого дефиса edited_phone = phone.replace("-", "", 1) print(edited_phone) # +1234-567-89-10

Разделение на подстроки

Метод split() разбивает строку на список подстрок в зависимости от разделителя. В качестве разделителя может выступать любой символ или последовательность символов. Данный метод имеет следующие формы:

  • split() : в качестве разделителя используется пробел
  • split(delimeter) : в качестве разделителя используется delimeter
  • split(delimeter, num) : параметр num указывает, сколько вхождений delimeter используется для разделения. Оставшаяся часть строки добавляется в список без разделения на подстроки
text = "Это был огромный, в два обхвата дуб, с обломанными ветвями и с обломанной корой" # разделение по пробелам splitted_text = text.split() print(splitted_text) print(splitted_text[6]) # дуб, # разбиение по запятым splitted_text = text.split(",") print(splitted_text) print(splitted_text[1]) # в два обхвата дуб # разбиение по первым пяти пробелам splitted_text = text.split(" ", 5) print(splitted_text) print(splitted_text[5]) # обхвата дуб, с обломанными ветвями и с обломанной корой

Еще один метод - partition() разбивает строку по разделителю на три подстроки и возвращает кортеж из трех элементов - подстрока до разделителя, разделитель и подстрока после разделителя:

text = "Это был огромный, в два обхвата дуб, с обломанными ветвями и с обломанной корой" text_parts = text.partition("дуб") print(text_parts) # ('Это был огромный, в два обхвата ', 'дуб', ', с обломанными ветвями и с обломанной корой')

Если разделитель с строке не найден, то возвращается кортеж с одной строкой.

Соединение строк

При рассмотрении простейших операций со строками было показано, как объединять строки с помощью операции сложения. Другую возможность для соединения строк представляет метод join() : он объединяет список строк. Причем текущая строка, у которой вызывается данный метод, используется в качестве разделителя:

words = ["Let", "me", "speak", "from", "my", "heart", "in", "English"] # разделитель - пробел sentence = " ".join(words) print(sentence) # Let me speak from my heart in English # разделитель - вертикальная черта sentence = " | ".join(words) print(sentence) # Let | me | speak | from | my | heart | in | English

Вместо списка в метод join можно передать простую строку, тогда разделитель будет вставляться между символами этой строки:

word = "hello" joined_word = "|".join(word) print(joined_word) # h|e|l|l|o

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *