Python: Как преобразовать список в строку?
В этом коротком руководстве мы рассмотрим различные методы, которые можно использовать для преобразования списка Python в строку.
Зачем преобразовывать список Python в строку?
Преобразование списка Python в строку является обычным явлением, хотя наиболее распространенный случай использования, с которым я столкнулся, — это преобразование итерируемого объекта в строку, чтобы его можно было отобразить. Python предоставляет нам несколько способов преобразования списков Python в строку, эти методы не имеют конкретных ограничений для сравнения, и, следовательно, это сводится только к пониманию и удобству программистов этого метода.
Если это не так, я бы порекомендовал это решение, если вы новичок. Но не стесняйтесь пройти их все, если вам интересно их изучить.
Способы преобразования списка Python в строки
Используя join():
Наиболее распространенным и питоническим способом преобразования списка python в строку является использование метода join() . Он принимает итеративные объекты, последовательно присоединяет и возвращает их в виде строки. Однако значения в iterable должны иметь строковый тип данных, и в случае, если iterable содержит int, вы можете использовать второй метод.
string.join(iterable)
Здесь string является разделителем
iterable — Любой итерируемый объект — список, кортежи, набор и т.д.
Код для преобразования списка Python в строку с помощью join():
flexiple = ["Hire", "the", "top", "freelancers"] print(" ".join(flexiple)) #Output - "Hire the top freelancers"
Поскольку разделителем был пробел, строка содержит символы в списке, разделенные строкой.
Как упоминалось выше, попытка использовать итерацию, содержащую объект int , вернет typeerror . Следующее решение покажет вам, как это обойти.
flexiple = ["Hire", "the", "top", 10, "python","freelancers"] print(" ".join(flexiple))
Использование join() и map():
Поскольку методы join() принимают только строковые значения, мы используем map() для преобразования значений int в строку перед преобразованием списка python в строку. Методы map() выполняют определенную функцию для всех значений в итерации.
map(function, iterables)
function — Конкретная функция, которую вы хотите выполнить
iterable — Итерируемый объект, содержащий значения
Таким образом, передавая функцию str() , которая преобразует объекты в строку, мы можем преобразовать значения типа int, а затем объединить их в строку.
Код для преобразования списка Python в строку с помощью map() :
flexiple = ["Hire", "the", "top", 10, "python","freelancers"] print(" ".join(map(str,flexiple))) #Output - "Hire the top 10 python freelancers"
Использование цикла:
Третий метод преобразования списка Python в строку — это написать цикл и добавить каждую итерацию в строку. Я бы предложил этот метод, если вы новичок в Python и не знакомы с такими понятиями, как join() и map() т.д. Код может быть длиннее, но он будет более читабельным для новичка.
flexiple = ["Hire", "the", "top", 10, "python","freelancers"] f1 = "" for i in flexiple: f1 += str(i)+ " " print(f1) #Output = "Hire the top 10 python freelancers "
3 варианта, как сконвертировать список(list) в строку в Python 3
Это метод строк — он берет список и соединяет элементы списка в строку.
1. Если у вас список строк, можно просто использовать join.
my_list = ["Pythonist.ru", "-", "хороший", "сайт", "по","Python"] print(" ".join(my_list)) >>>Pythonist.ru - хороший сайт по Python
2. Если это список чисел, вы можете использовать map() для приведения всех элементов списка к строке, а потом просто склеить их в одну строку методом join()
my_list2 = [66, 77, 88, 99] print(" ".join(map(str, my_list2))) >>> 66 77 88 99
3. Если вы хотите получить разделенные запятой строки, можно использовать такой shortcut кода:
my_list3 = [11, 22, 33, 44, 55] print(str(my_list3).strip('[]')) >>> 11, 22, 33, 44, 55
Больше 50 задач по Python c решением и дискуссией между подписчиками можно посмотреть тут
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
Преобразование списка строк в строку с разделителями
Существует распространенная ситуация, когда требуется превратить список строк в одну строку, в которой значения из списка разделены определенным символом. Допустим, есть список:
list = ['яблоко', 'банан', 'апельсин']
Необходимо превратить его в строку, где все элементы списка разделены запятой:
string = 'яблоко,банан,апельсин'
Решение этой задачи в Python довольно простое и красивое. Используется метод join() , который объединяет все элементы списка в одну строку с заданным разделителем.
Вот как это выглядит на практике:
list = ['яблоко', 'банан', 'апельсин'] string = ','.join(list)
В результате выполнения этого кода переменная string будет содержать строку ‘яблоко,банан,апельсин’.
Метод join() не ограничивается использованием только запятой в качестве разделителя. Вместо запятой можно использовать любую строку.
Например, если нужно, чтобы элементы были разделены точкой с запятой, код будет выглядеть так:
list = ['яблоко', 'банан', 'апельсин'] string = ';'.join(list)
В этом случае в переменной string окажется строка ‘яблоко;банан;апельсин’.
Метод join() — это простой и эффективный способ преобразования списка строк в строку с разделителями.