Python Strings - Общ преглед на основните низови операции

Низовете са един от основните типове данни в Python. Струните на Python са комбинация от произволен брой знаци, направени от букви, цифри и други специални знаци. В този урок ще научите как да ги създавате, манипулирате и форматирате за използване при различни сценарии.



Създайте нови низове в Python

За да създадете нов Python низ, трябва просто да декларирате последователност от символи, затворени с единични или двойни кавички. Тройните кавички също се използват за низове с дължина на няколко реда.

double_quotes = 'My name is John!' single_quotes = 'My name is John!' multi_line_string = '''1. My name is John!



2. I am a programmer'''


Индексиране на низове

Всеки символ в низ от Python има целочислен индекс. Индексирането започва от 0 при първия знак и се увеличава по низ. Можете да използвате индекса на отделен знак, за да извлечете този знак от низа, както е показано в следващия пример.


myPet = 'Dog not a cat' myPet[0] # 'D' myPet[5] # 'o' myPet[7] # ' ' myPet[12] # 't' # myPet[15] # IndexError

Опитът за достъп до символ извън индекса на крайния символ води до IndexError .

Можете да получите достъп до символ в низ, като използвате отрицателен индекс. В този случай индексирането започва от -1 в крайния символ на низа и се увеличава отрицателно, когато се върнете назад.


myPet = 'Dog not a cat' myPet[-1] # 't' myPet[-6] # ' ' myPet[-8] # 'o' myPet[-13] # 'D'

Нарязване на низове

Нарязването е метод за извличане на подниз (част от низа) от низ. Тази задача се постига с помощта на индексиране на низове.

myPet = 'Dog not a cat' myPet[5:7] # 'ot' myPet[1:12] # 'og not a ca'

Тук се предоставят два индекса, разделени с двоеточие, първият индекс показва къде да започне нарязването, а вторият индекс показва къде да спре. Полученият подниз включва символи от началния индекс до знака преди крайния индекс, знакът в завършващия индекс не е включен в подниза.

Ако не предоставите началния индекс, нарязването започва от първия символ на низа. Ако не предоставите крайния индекс, нарязването завършва на последния знак, докато го включвате в получения подниз.

myPet = 'Dog not a cat' myPet[:7] # 'Dog not' myPet[10:] # 'cat' myPet[:] # 'Dog not a cat'

Можете да предоставите отрицателни индекси и като индекси за нарязване.


myPet = 'Dog not a cat' myPet[10:-1] # 'ca'

Дължина на низ

Вграденият метод на Python len() извежда дължината на низ.

myPet = 'Dog not a cat' len(myPet) # 13

Итерация през низ

Можете да прегледате всеки символ в низ, използвайки for цикъл.

Пример:

name = 'John' for char in name:
print(char) # 'J', 'o', 'h', 'n'


Конкатенация на низове

Обединяването на низове е свързването на два или повече низа, за да се създаде един низ. В Python има няколко метода за обединяване на низове.


Единият използва + оператор.

str1 = 'Hello' str2 = 'World' concat_str = str1 + str2 # 'HelloWorld' concat_str = str1 + ' ' + str2 # 'Hello World'

Можете да използвате * оператор за конкатенация на низ за себе си произволен брой пъти.

concat_str = str1*3 # 'HelloHelloHello'

Друг начин за обединяване на низове е чрез join() метод.

Вграденият join() метод се използва за обединяване на масив от низове с помощта на общ разделител.


arr = [str1, str2] concat_str = (' ').join(arr) # 'Hello World' concat_str = (',').join(arr) # 'Hello,World'

В горния код първият join() метод добавя празно пространство между всяка дума в масива.

Вторият join() метод вмъква запетая между всяка дума в масива.



String и Int Concatenation

В Python също можем да обединим низ в цяло число, но не и с + оператор. Ако се опитаме да използваме следния код:

name = 'John' age = 35 print(a + b)

Ще получим:


Traceback (most recent call last): File 'concat.py', line 5, in
print(a + b) TypeError: can only concatenate str (not 'int') to str
Забележка:Не можете да свързвате низ и цяло число с помощта на + оператор.

За да избегнем тази грешка, можем да използваме str() метод за преобразуване на цялото число в низ, например:

name = 'John ' age = '35' print(a + str(b)) #John 35

Как да разделя низ

Вграденият split() метод се използва за разделяне на единичен низ в масив от низове.

string = 'My name is John' split_arr = string.split(' ') # ['My', 'name', 'is', 'John'] We can also split a string using a separator: string = 'John, Rose, Jack, Mary' split_arr = string.split(', ') # ['John', 'Rose', 'Jack', 'Mary']

Лента - Премахнете белите пространства

strip(), вграденият метод на низ се използва за премахване на белите интервали от началото и края на низ.

string = ' Hello, World ' stripper_str = string.strip() # 'Hello, World'

Както можете да видите, strip() не премахва празнините, които са между другите символи, но само в двата края.

Има два варианта на strip() метод, лява и дясна лента:

  • lstrip()
  • rstrip()

Тези методи премахват съответно белите интервали в лявата и дясната страна на низа.

Пример:

lsplit_str = string.lstrip() # 'Hello, World ' rsplit_str = string.rstrip() # ' Hello, World'

Стрип методите са особено полезни при четене на потребителски въведения, където потребителите могат да предадат допълнителни бели пространства.



Форматиране на низ

Python’s format() метод се използва за форматиране на низ. Къдрави скоби {} се използват вътре в низа, който трябва да бъде форматиран като заместител за частта, която трябва да бъде заменена с аргументите, предоставени на format() метод.

Пример:

'Hello, {}'.format('John') # 'Hello, John'

В горния пример {} се заменя с „Джон“ във форматирания низ.

Можете да използвате повече от една къдрава скоба вътре в низа за форматиране. Те се заменят с аргументите, предоставени на format() метод или в предоставения ред (ако в къдравите скоби не са посочени позиционни индекси) или позиционен ред.

Пример:

'I have a {}, {}, and a {}'.format('dog', 'cat', 'rabbit') # 'I have a dog, cat, and a rabbit' 'I have a {1}, {0}, and a {2}'.format('dog', 'cat', 'rabbit') # 'I have a cat, dog, and a rabbit'

Вместо да използвате индекси, можете да предоставите аргументи на ключови думи на format() метод, така че тези ключови думи да могат да се използват във фигурни скоби.

Пример:

print('{friend} is my friend and {enemy} is my enemy'.format(friend='John', enemy='Jack')) # 'John is my friend and Jack is my enemy'

format() методът е доста универсален, тъй като може да се използва за много случаи на употреба.

Ето някои други приложения на format() метод:

arr = [3, 5] 'I have {0[0]} dogs and {0[1]} cats'.format(arr) # 'I have 3 dogs and 4 cats' #convert numbers to different bases 'int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}'.format(42) # 'int: 42; hex: 2a; oct: 52; bin: 101010'

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

Използване на Python’s lower() метод, можете да конвертирате низ в малки букви.

Пример:

string = 'Hello, World!' string.lower() # 'hello, world!'

Преобразуване на низ в главни букви

По същия начин, използвайки Python’s upper() метод, можете да конвертирате низ в главни букви.

Пример:

string = 'Hello, World!' string.upper() # 'HELLO, WORLD!'

Заключение

Надявам се, че с помощта на този урок вече сте запознати с низовете на Python и как да използвате различни методи за низови операции.

Справка: Документация за низовете на Python