Слайд 1
🔠 Строковые методы split() и join()
Эти два метода работают в паре:
split() разбивает строку на список,
а join() — собирает строку из списка.
🔹 Метод split()
Метод split() разбивает строку на части (слова) и возвращает список.
По умолчанию разделителем служит любой пробел или табуляция.
s = 'Python is the most powerful language'
words = s.split()
print(words)
# ['Python', 'is', 'the', 'most', 'powerful', 'language']
Пример использования при вводе данных:
numbers = input().split()
# Ввод: 1 2 3 4 5
print(numbers)
# ['1', '2', '3', '4', '5']
Обрати внимание: split() всегда возвращает список строк.
Чтобы получить числа, нужно выполнить преобразование:
numbers = input().split()
for i in range(len(numbers)):
numbers[i] = int(numbers[i])
print(numbers)
# [1, 2, 3, 4, 5]
Использование разделителя:
ip = '192.168.1.24'
numbers = ip.split('.') # разделяем по точке
print(numbers)
# ['192', '168', '1', '24']
💡 Если не указать параметр —
split() разделит строку по любому пробелу.
Если указать явно, например split(' '), — каждый пробел будет учитываться отдельно.
🔹 Метод join()
Метод join() делает обратное — соединяет элементы списка в строку.
Вызов производится на строке-разделителе.
words = ['Python', 'is', 'the', 'most', 'powerful', 'language']
s = ' '.join(words)
print(s)
# Python is the most powerful language
Разделителем здесь является один пробел ' '.
Примеры с другими разделителями:
words = ['Мы', 'учим', 'язык', 'Python']
print('*'.join(words))
print('-'.join(words))
print('*****'.join(words))
print('abc'.join(words))
Результат:
Мы*учим*язык*Python
Мы-учим-язык-Python
Мы*****учим*****язык*****Python
МыabcучимabcязыкabcPython
⚙️ Запомни:
split() — превращает строку в список.
join() — собирает строку из списка.
📘 Примечания
-
Разница между
s.split()иs.split(' ')проявляется при нескольких пробелах подряд:
s = 'I love Python'
words1 = s.split()
words2 = s.split(' ')
print(words1)
print(words2)
Результат:
['I', 'love', 'Python']
['I', 'love', '', 'Python']
При указании явного разделителя ' ' между двумя пробелами создаётся пустая строка.
- Методы
split()иjoin()— это строковые методы. Их нельзя вызвать у списков.
print([1, 2].split())
# AttributeError: 'list' object has no attribute 'split'
-
Метод
join()работает только со строками. Если список содержит числа — будет ошибка:
numbers = [1, 2, 3, 4]
s = '*'.join(numbers)
# TypeError: sequence item 0: expected str instance, int found
-
Однако
join()можно применять и к строкам:
s = '+'.join('pygen')
print(s)
# p+y+g+e+n