HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>21 дек 2022</li>
2 <ul><li>21 дек 2022</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Рассказываем о методе join() и других полезных инструментах для конвертирования Python‑списков в строки.</p>
4 </ul><p>Рассказываем о методе join() и других полезных инструментах для конвертирования Python‑списков в строки.</p>
5 <p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5 <p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6 <p>Журналист, изучает Python. Любит разбираться в мелочах, общаться с людьми и понимать их.</p>
6 <p>Журналист, изучает Python. Любит разбираться в мелочах, общаться с людьми и понимать их.</p>
7 <p>В Python существует два основных способа сделать из списка строку: с помощью цикла и с помощью метода join(). У обоих есть нюансы, о которых мы сейчас расскажем.</p>
7 <p>В Python существует два основных способа сделать из списка строку: с помощью цикла и с помощью метода join(). У обоих есть нюансы, о которых мы сейчас расскажем.</p>
8 <p>Более понятный для новичка, но и более громоздкий способ перевести список в строку - воспользоваться циклом. Если вы уже знаете его и просто хотите узнать более эффективный и быстрый метод, то сразу переходите<a>к следующему разделу</a>. А если нет, то давайте разбираться.</p>
8 <p>Более понятный для новичка, но и более громоздкий способ перевести список в строку - воспользоваться циклом. Если вы уже знаете его и просто хотите узнать более эффективный и быстрый метод, то сразу переходите<a>к следующему разделу</a>. А если нет, то давайте разбираться.</p>
9 <p>Как это работает: мы создаём пустую строку, потом с помощью цикла переберём каждый элемент списка и на каждой итерации будем добавлять к строке текущий элемент списка.</p>
9 <p>Как это работает: мы создаём пустую строку, потом с помощью цикла переберём каждый элемент списка и на каждой итерации будем добавлять к строке текущий элемент списка.</p>
10 lst = ['Преобразование','через','цикл'] #Создаём пустую строку string = '' #По очереди добавляем к ней каждый элемент списка for el in lst: string += el print(string) &gt;&gt;&gt; Преобразованиечерезцикл<p>Однако такой код не будет работать, если в списке есть не только строки, но и, например, числа. Дело в том, что в Python нельзя смешивать данные разных типов.</p>
10 lst = ['Преобразование','через','цикл'] #Создаём пустую строку string = '' #По очереди добавляем к ней каждый элемент списка for el in lst: string += el print(string) &gt;&gt;&gt; Преобразованиечерезцикл<p>Однако такой код не будет работать, если в списке есть не только строки, но и, например, числа. Дело в том, что в Python нельзя смешивать данные разных типов.</p>
11 <p>Поэтому, перед тем как добавлять элемент в список, его нужно преобразовать в строку. Делается это с помощью функции str(). Добавим её в наш код.</p>
11 <p>Поэтому, перед тем как добавлять элемент в список, его нужно преобразовать в строку. Делается это с помощью функции str(). Добавим её в наш код.</p>
12 #Создаём список, в котором есть как строки, так и цифры lst = ['Преобразование','через','цикл', 2] string = '' for el in lst: string += str(el) #Превращаем каждый элемент списка в строку print(string) &gt;&gt;&gt; Преобразованиечерезцикл2<p>Если нужно установить разделитель между строками, то для него нужно прописать отдельную строчку кода внутри цикла.</p>
12 #Создаём список, в котором есть как строки, так и цифры lst = ['Преобразование','через','цикл', 2] string = '' for el in lst: string += str(el) #Превращаем каждый элемент списка в строку print(string) &gt;&gt;&gt; Преобразованиечерезцикл2<p>Если нужно установить разделитель между строками, то для него нужно прописать отдельную строчку кода внутри цикла.</p>
13 lst = ['Преобразование','через','цикл', 3] string = '' for el in lst: #Добавляем к строке элемент списка string += str(el) #Добавляем к строке разделитель - в данном случае пробел string += ' ' print(string) &gt;&gt;&gt; Преобразование через цикл 3<p>Обратите внимание: раз мы добавляем разделитель на каждой итерации, пробел будет и после цифры 3 нашего последнего элемента. Это легко проверить, если вместо пробела добавлять какой-то другой, видимый символ.</p>
13 lst = ['Преобразование','через','цикл', 3] string = '' for el in lst: #Добавляем к строке элемент списка string += str(el) #Добавляем к строке разделитель - в данном случае пробел string += ' ' print(string) &gt;&gt;&gt; Преобразование через цикл 3<p>Обратите внимание: раз мы добавляем разделитель на каждой итерации, пробел будет и после цифры 3 нашего последнего элемента. Это легко проверить, если вместо пробела добавлять какой-то другой, видимый символ.</p>
14 <p>Эту проблему можно решить - ещё больше усложнив код. Например, введя условие, которое проверяет, последний это элемент в списке или нет. Однако гораздо проще и удобнее превратить список в строку, используя встроенный метод join().</p>
14 <p>Эту проблему можно решить - ещё больше усложнив код. Например, введя условие, которое проверяет, последний это элемент в списке или нет. Однако гораздо проще и удобнее превратить список в строку, используя встроенный метод join().</p>
15 <p>Метод join(), по сути, делает всё то же самое, что и наш цикл, но лучше, удобнее и занимает всего одну строку. Вот как его применяют:</p>
15 <p>Метод join(), по сути, делает всё то же самое, что и наш цикл, но лучше, удобнее и занимает всего одну строку. Вот как его применяют:</p>
16 string.join(lst)<p>В качестве аргумента lst он получает список, элементы которого и будет объединять в строку, а string - это разделитель. Если мы не хотим его устанавливать, то в качестве string нужно указать пустую строку.</p>
16 string.join(lst)<p>В качестве аргумента lst он получает список, элементы которого и будет объединять в строку, а string - это разделитель. Если мы не хотим его устанавливать, то в качестве string нужно указать пустую строку.</p>
17 <p>Посмотрим, как join() применяется на практике.</p>
17 <p>Посмотрим, как join() применяется на практике.</p>
18 lst = ['Преобразование', 'через', 'метод', 'join()'] #Объединяем элементы списка с пустым разделителем print(''.join(lst)) &gt;&gt;&gt; Преобразованиечерезметодjoin() #Устанавливаем пробел в качестве разделителя print(' '.join(lst)) &gt;&gt;&gt; Преобразование через метод join()<p>Заметили особенность? Разделители ставятся только<strong>между</strong>элементами, а не <strong>после</strong>каждого элемента, как было в нашем цикле. join() - умница. Однако и тут есть ахиллесова пята: если в списке встречаются нестроковые элементы, мы получим ошибку. Чтобы этого избежать, надо опять-таки сначала превратить все нестроки в строки. Сделать это можно двумя способами.</p>
18 lst = ['Преобразование', 'через', 'метод', 'join()'] #Объединяем элементы списка с пустым разделителем print(''.join(lst)) &gt;&gt;&gt; Преобразованиечерезметодjoin() #Устанавливаем пробел в качестве разделителя print(' '.join(lst)) &gt;&gt;&gt; Преобразование через метод join()<p>Заметили особенность? Разделители ставятся только<strong>между</strong>элементами, а не <strong>после</strong>каждого элемента, как было в нашем цикле. join() - умница. Однако и тут есть ахиллесова пята: если в списке встречаются нестроковые элементы, мы получим ошибку. Чтобы этого избежать, надо опять-таки сначала превратить все нестроки в строки. Сделать это можно двумя способами.</p>
19 <p>Выражение-генератор - это конструкция, которая позволяет провести операцию над каждым элементом списка. Оно возвращает<a>генератор</a>, с которым метод join() обращается точно так же, как и со списками.</p>
19 <p>Выражение-генератор - это конструкция, которая позволяет провести операцию над каждым элементом списка. Оно возвращает<a>генератор</a>, с которым метод join() обращается точно так же, как и со списками.</p>
20 lst = [1, 1.2, 'строка', False] print(' '.join(str(el) for el in lst)) &gt;&gt;&gt; 1 1.2 строка False<p>Конструкция str(el)<strong>for</strong>el <strong>in</strong>lst означает, что каждый элемент el в списке lst будет превращён в строку с помощью функции str (стандартной функции Python, которую мы уже использовали, когда работали с циклом).</p>
20 lst = [1, 1.2, 'строка', False] print(' '.join(str(el) for el in lst)) &gt;&gt;&gt; 1 1.2 строка False<p>Конструкция str(el)<strong>for</strong>el <strong>in</strong>lst означает, что каждый элемент el в списке lst будет превращён в строку с помощью функции str (стандартной функции Python, которую мы уже использовали, когда работали с циклом).</p>
21 <p>Функция map() умеет делать то же самое, что и выражение-генератор, но их синтаксис отличается. В качестве первого аргумента она принимает саму операцию, в качестве второго - список, к элементам которого эта операция применяется.</p>
21 <p>Функция map() умеет делать то же самое, что и выражение-генератор, но их синтаксис отличается. В качестве первого аргумента она принимает саму операцию, в качестве второго - список, к элементам которого эта операция применяется.</p>
22 lst = [1, 1.2, 'строка', False] print(' '.join(map(str, lst))) &gt;&gt;&gt; 1 1.2 строка False<p>Конструкция map(str, lst) означает, что каждый элемент в списке lst будет превращён в строку с помощью функции str. Обратите внимание, что в качестве аргумента в map() передаётся только название функции, без скобок.</p>
22 lst = [1, 1.2, 'строка', False] print(' '.join(map(str, lst))) &gt;&gt;&gt; 1 1.2 строка False<p>Конструкция map(str, lst) означает, что каждый элемент в списке lst будет превращён в строку с помощью функции str. Обратите внимание, что в качестве аргумента в map() передаётся только название функции, без скобок.</p>
23 <p>Преобразовать список в строку можно с помощью цикла, но для этого есть и более удобный инструмент - метод join().</p>
23 <p>Преобразовать список в строку можно с помощью цикла, но для этого есть и более удобный инструмент - метод join().</p>
24 <p>Если содержит нестроковые элементы, то их для начала придётся превратить в строки - иначе выскочит ошибка. Для этого можно воспользоваться выражением-генератором или функцией map().</p>
24 <p>Если содержит нестроковые элементы, то их для начала придётся превратить в строки - иначе выскочит ошибка. Для этого можно воспользоваться выражением-генератором или функцией map().</p>
25 <p>Python для всех</p>
25 <p>Python для всех</p>
26 <p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
26 <p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
27 <p><a>Пройти бесплатно</a></p>
27 <p><a>Пройти бесплатно</a></p>
28 <a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>
28 <a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>