Python: преобразовать список в строку с помощью join()
Данные принимают различные форматы и формы - одной из наиболее распространенных структур данных являются списки/массивы. Строки - это, по сути, последовательности буквенно-цифровых символов. Параллель между ними очевидна, и мы часто переходим от одного к другому.
В этом руководстве мы рассмотрим, как преобразовать / собрать список в строку в Python.
Преобразуйте список в строку на Python с помощью join()
Общий подход, который вы будете использовать, - это функция join()
с несколькими вариантами на выбор. Функция вызывается в строке, обозначающей разделитель - и этот разделитель будет добавлен между всеми соединенными элементами.
Давайте взглянем на список персонажей, которые мы хотели бы объединить:
base_list = ['M', 'K', 'V', 'N', 'L', 'I', 'L', 'F', 'S', 'L', 'L', 'V']
Самый простой способ объединить их в одну строку - просто передать список в функцию join()
string = "".join(base_list)
print(string)
Это приводит к:
MKVNLILFSLLV
Мы объединили несколько символов, обозначающих аминокислоты, присутствующие в начале последовательности белка, обнаруженного в бактериях.
Каждый из этих элементов имеет тип str
, поэтому нет проблем с естественным помещением их в строку. Хотя иногда вам может потребоваться преобразовать определенный элемент в другой тип.
Кроме того, если вы используете другой разделитель, вы также можете получить другое представление:
string = ", ".join(base_list)
Это приводит к:
M, K, V, N, L, I, L, F, S, L, L, V
Преобразование списка в строку на Python с перебором
Если вам действительно нужно преобразовать элементы, вы можете просто использовать перебор списка в цикле:
string = "".join(str(element) for element in base_list)
Каждый элемент в списке теперь передается через str()
, которая преобразует их в строку. Вы можете заменить это любой другой функцией, включая пользовательские. Например, давайте создадим функцию, которая использует каждый элемент с заглавной буквы в случае, если элемент не пишется с заглавной буквы, как должно быть:
base_list = ['m', 'K', 'V', 'N', 'L', 'I', 'L', 'f', 'S', 'L', 'L', 'V']
def capitalize_char(char):
return char.upper()
string = "".join(capitalize_char(element) for element in base_list)
print(string)
m
и f
переведены в нижний регистр, чего не должно было случиться. Мы передали в состав списка capitalize_char()
, возвращая версию с заглавными буквами каждого переданного элемента. Это приводит к:
MKVNLILFSLLV
Преобразование списка в строку в Python с помощью map()
Наконец, для более чистого и простого способа передачи элементов через функцию мы можем использовать map()
. Как правило, map()
используется для сопоставления значений одной коллекции с другой, обычно с использованием другого (или даже уменьшенного) формата.
Например, вы можете сопоставить каждый символ с другим списком логических значений, где каждое логическое значение представляет, является ли символ прописным или нет.
Конечно, вы также всегда можете выполнить сопоставление 1 к 1 с помощью функции map()
и, ну, просто сопоставить строку со строкой, соединив их вместе в одну:
base_list = ['M', 'K', 'V', 'N', 'L', 'I', 'L', 'F', 'S', 'L', 'L', 'V']
string = "".join(map(str, base_list))
print(string)
Это приводит к:
MKVNLILFSLLV