====== Работа со строками ====== Строки в Python хранятся в Unicode. В Python нет отдельного типа для одного символа. Символ это ''str'' длинной 1. ===== Индексация ===== ''str'' индексируются как перечисляемые типы. К ним можно применять срезы и итерировать по символам. s = "привет" s[1] == "p" # True for ss in s: print(ss)
===== Изменение ===== ''str'' нельзя изменить. s = "привет" s[1] = "Ф" # Ошибка Чтобы изменить строку надо создать новую из старой или превратить ее в список. s = "привет" s = s[0:1] + "Ф" + s[2:] # Успешно s = "привет" vs = list(s) vs[1] = "Ф" s = ''.join(vs) # Успешно
===== Некоторые методы ===== === find === Поиск подстроки s = "hello world" x = s.find("world") # x == 6 x = s.find("code") # x == -1 === startswith и endswith === Проверка, что строка начинается или заканчивается на подстроку s = "hello world" x = s.startswith("hello") # x == True x = s.endswith("code") # x == False
=== + === Конкатенация строк a = "hello" b = "world" c = a + " " + b #c == "hello world" === split === Разбивает строку на список строк с использованием разделителя (по умолчанию пробел) s = "goodbye|blue|sky" d = s.split("|") # d == ['goodbye', 'blue', 'sky'] === join === Собирает строку из списка строк с использованием разделителя jp = ["goodbye", "blue", "sky"] sep = "_" s = sep.join(jp) # s == "goodbye_blue_sky"
=== strip === Удаляет из начала и конца строки пробельные символы s = "\t goodbye blue sky \n \n" d = s.strip() # d == "goodbye blue sky"
=== replace === Выполняет замену в строке s = "goodbye blue sky" d = s.replace("blue", "red") # d == "goodbye red sky" === encode и decode === Превращают ''str'' в ''bytes'' и обратно в заданной кодировке (по умолчанию ''utf8'') s = "привет мир" d = s.encode("cp866") # d == b'\xaf\xe0\xa8\xa2\xa5\xe2 \xac\xa8\xe0' q = d.decode("cp866") # q == "привет мир"
=== ljust и rjust === Догоняет строку заданным символом до нужной длинны. s = "привет мир" w = s.ljust(15,"_") # w == 'привет мир_____' q = s.rjust(15,"_") # q == '_____привет мир'