Python

Как да разделя низове в Python

Как да разделя низове в Python
Тази статия ще обясни как да разделяте низове в python, използвайки методите “split ()” и “partition ()”. Тези методи са особено полезни, ако искате да конвертирате изречение или група думи в анализируеми и итеративни типове Python. Всички мостри на кода в това ръководство са тествани с Python версия 3.8.6.

Метод на разделяне

Методът “split ()” може да се използва за разделяне на думи, използвайки разделител, зададен от потребителя. Той връща списък с разделени думи, без да включва разделителя. Ако потребителят не е посочил разделител, празното пространство (едно или повече) се използва като единичен разделител.

Например, кодът по-долу ще върне „['Linux', 'Hint']” като изход:

text = "Подсказка за Linux"
текст.разделяне ()

Кодът по-долу ще върне „['LinuxHint', 'com']“ като изход, когато „.”Се използва като разделител:

text = "LinuxHint.com "
текст.разделен („.”)

Разделителят не трябва да е единичен знак. Методът split разделя два аргумента:

И двата аргумента не са задължителни. Както бе споменато по-горе, ако аргументът „sep“ не е посочен, празното пространство се използва като разделител за разделяне. Аргументът „maxsplit“ има стойност по подразбиране „-1“ и по подразбиране разделя всички случаи. Помислете за кода по-долу:

text = "LinuxHint.съвместно.нас"
текст.разделен („.”)

Той ще върне „['LinuxHint', 'co', 'us']” като изход. Ако искате да спрете разделянето при първото появяване на разделителя, посочете „1“ като аргумент „maxsplit“.

text = "LinuxHint.съвместно.нас"
текст.разделен („.”, 1)

Кодът по-горе ще върне „['LinuxHint', 'co.us '] ”като изход. Просто посочете броя на повторенията, където искате процесът на разделяне да спре като втори аргумент.

Имайте предвид, че ако има последователни разделители, празен низ ще бъде върнат за останалите разделители след първото разделяне (когато не се използва аргумент “maxsplit”):

text = "LinuxHint ... com"
текст.разделен (".")

Кодът по-горе ще върне “['LinuxHint', ',' com ']' като изход. В случай, че искате да премахнете празни низове от получения списък, можете да използвате следния израз за разбиране на списъка:

text = "LinuxHint ... com"
резултат = текст.разделен (".")
резултат = [елемент за елемент в резултат, ако елемент != ""]
печат (резултат)

Ще получите „['LinuxHint', 'com']“ като изход след стартиране на горната примерна кодова програма.

Обърнете внимание, че методът “split ()” се движи отляво надясно, за да разделя низовете на думи. Ако искате да разделите низ от посока отдясно наляво, вместо това използвайте “rsplit ()”. Синтаксисът, употребата и аргументите му са абсолютно същите като метода “split ()”.

Ако в низа не е намерен разделител, докато се използват методите “split ()” или “rsplit ()”, оригиналният низ се връща като единствен елемент от списъка.

Метод на разделяне

Методът “partition ()” може да се използва за разделяне на низове и работи идентично с метода “split ()” с някои разлики. Най-забележителната разлика е, че той задържа разделителя и го включва като елемент в получената кортеж, съдържащ разделени думи. Това е особено полезно, ако искате да разделите низа на обект, който може да се повтори (в този случай кортеж), без да премахвате оригинални символи. Помислете за кода по-долу:

text = "LinuxHint.com "
резултат = текст.дял (".")
печат (резултат)

Горната проба на кода ще върне „('LinuxHint', '.',' com ') ”като изход. Ако искате резултатът да е от списъчен тип, използвайте следния пример за код:

text = "LinuxHint.com "
резултат = списък (текст.дял ("."))
печат (резултат)

Трябва да получите „['LinuxHint', '.',' com '] ”като изход след стартиране на горната извадка от код.

Методът “partition ()” приема само един аргумент, наречен “sep”. Потребителите могат да посочат разделител с произволна дължина. За разлика от метода “split ()”, този аргумент е задължителен, така че не можете да пропуснете разделителя. Можете обаче да зададете празно пространство като разделител.

Обърнете внимание, че методът на разделяне спира при първото появяване на разделителя. Така че, ако вашият низ съдържа множество разделители, методът “partition ()” ще игнорира всички останали събития. Ето пример, илюстриращ това:

text = "LinuxHint.съвместно.нас"
резултат = списък (текст.дял ("."))
печат (резултат)

Примерът на кода ще изведе „['LinuxHint', '."," съвместно.us '] ”като изход. Ако искате да разделите във всички случаи на разделителя и да включите разделителя и в окончателния списък, може да се наложи да използвате модел „Редовен израз“ или „RegEx“. За споменатия по-горе пример можете да използвате шаблон RegEx по следния начин:

внос re
text = "LinuxHint.съвместно.нас"
резултат = re.split ("(\.)", текст)
печат (резултат)

Ще получите “['LinuxHint', '.',' co ','.',' us '] ”като изход след изпълнението на горната извадка от код. Точковият знак е избягван в споменатия по-горе израз RegEx. Имайте предвид, че докато горният пример работи с единична точка, той може да не работи със сложни разделители и сложни низове. Може да се наложи да дефинирате вашия собствен RegEx модел в зависимост от вашия случай на употреба. Примерът е току-що споменат тук, за да ви даде някаква представа за процеса на задържане на разделителя в окончателния списък с помощта на изразите RegEx.

Методът “partition ()” понякога може да остави празни низове, особено когато разделителят не е намерен в низа, който трябва да бъде разделен. В такива случаи можете да използвате изрази за разбиране на списъци, за да премахнете празни низове, както е обяснено в раздела за метода “split ()” по-горе.

text = "LinuxHint"
резултат = списък (текст.дял ("."))
резултат = [елемент за елемент в резултат, ако елемент != ""]
печат (резултат)

След като стартирате горния код, трябва да получите “['LinuxHint']” като изход.

Заключение

За прости и ясни разделения можете да използвате методите “split ()” и “partition ()”, за да получите итеративни типове. За сложни низове и разделители ще трябва да използвате изрази RegEx.

Инсталирайте най-новата стратегия за игра OpenRA на Ubuntu Linux
OpenRA е Libre / Free Real Time стратегия за игра, която пресъздава ранните игри на Westwood като класическата Command & Conquer: Red Alert. Разпредел...
Инсталирайте най-новия Dolphin Emulator за Gamecube & Wii на Linux
Dolphin Emulator ви позволява да играете избраните от вас игри Gamecube & Wii на Linux Personal Computers (PC). Като безплатно достъпен и емулатор на...
Как да използвам GameConqueror Cheat Engine в Linux
Статията обхваща ръководство за използването на GameConqueror cheat engine в Linux. Много потребители, които играят игри под Windows, често използват ...