#!/usr/bin/env python # coding: utf-8 # # Python для сбора данных # # *Алла Тамбовцева, НИУ ВШЭ* # # ## Работа со строками: методы `.split()` и `.join()` # Для удобства будем работать с длинной строкой, которая представляет собой целую фразу. # In[1]: st = "питон греется на солнышке" # ### Метод `.split()` # Возьмем строку `st` и разобьем её на отдельные слова по пробелу. Для этого нам понадобится метод `.split()`: # In[27]: st.split() # В скобках у `.split()` ничего не указано. Это означает, что строка будет разбиваться на части согласно настройкам по умолчанию, то есть по пробелу. Если бы мы хотели разбить строку по другому символу, мы бы указали это явно: # In[28]: st.split("т") # неразумно, но просто для примера разбиваем по букве т # Можно ли разбить строку по пустоте? То есть просто разделить ее на отдельные символы? Попробуем. # In[29]: st.split("") # нельзя # Python сообщает нам, что разделитель пустой, и делить строку на части не хочет. Если очень нужно, можно превратить строку в список, а потом убрать из него лишние элементы. # In[30]: list(st) # ### Метод `.join()` # Раз есть метод для разбиения строки на список строк, должна быть и обратная операция – для склеивания списка строк в одну большую строку. Возьмём небольшой список `words` и «соберём» из него одну строку, добавив пробелы между элементами. Для этого нам потребуется метод `.join()`: # In[31]: words = ['a', 'b', 'c', 'd'] # In[32]: " ".join(words) # в кавычках - с помощью чего склеиваем, в скобках - список «частей» строки # In[33]: my_w = " ".join(words) my_w # В качестве разделителя могли выбрать что-то другое, например, дефис: # In[34]: "-".join(words) # А могли взять что-то менее привычное (хотя с этими символами мы сталкиваемся часто, просто их не видим): символы, обозначающие переход на новую строку или табуляцию. # In[35]: s = "\n".join(words) # \n - new line, новая строка print(s) # In[36]: s2 = "\t".join(words) # \t - tabulation, табуляция print(s2)