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 "
Как перевести список в строку python
Для приведения списка к строке используется метод .join() . Его особенность заключается в том, что это метод строки, а не списка. Поэтому вызывать его нужно на строке, которая будет являться разделителем элементов списка:
fruits = ['orange', 'apple', 'banana', 'kiwi'] ''.join(fruits) # orangeapplebananakiwi ' '.join(fruits) # orange apple banana kiwi ', '.join(fruits) # orange, apple, banana, kiwi
А ещё важно знать, что все элементы списка должны быть строками. Если список будет содержать число, то мы получим ошибку:
fruits.append(1) # ['orange', 'apple', 'banana', 'kiwi', 1] ', '.join(fruits) # Traceback (most recent call last): # File "", line 1, in # TypeError: sequence item 4: expected str instance, int found
В таком случае перед использованием метода .join() все элементы списка нужно привести к строке:
fruits = [str(item) for item in fruits] ', '.join(fruits) # 'orange, apple, banana, kiwi, 1'
Преобразование строки в список символов в Python
В этом посте мы обсудим, как преобразовать строку в список символов в Python.
Хотя Python позволяет вам получить доступ к отдельным символам строки с помощью оператора индекса [] а также позволяет легко перебирать строку, но в зависимости от вашего варианта использования вы можете создать список из символов строки. Это может быть достигнуто либо с помощью конструктора списка, либо с помощью понимания списка.
1. Использование list() конструктор
The list() конструктор строит список непосредственно из итерируемого объекта, а поскольку строка является итерируемой, вы можете создать из нее список. Выполнение list(s) на веревке s возвращает список всех символов, присутствующих в строке, в том же порядке, что и символы строки. Итак, все, что вам нужно сделать, это передать ваш строковый объект конструктору списка, как показано ниже:
10. Преобразование и проверка типов в Python
В предыдущем уроке мы познакомились с условной инструкцией if/elif/else в Python. Хотя мы уже касались преобразования типов в уроке про типы данных, и вы на практике ощутили их необходимость для языка с сильной типизацией, давайте все равно еще раз рассмотрим и научимся проверять их, чтобы избежать нелепых ситуаций при преобразовании из одного типа в другой.
Преобразование типов
Рассмотрим 7 функций: int() , bin() , hex() , list() , set() , tuple() и str() .
Чтобы преобразовать строку в число, воспользуйтесь функцией int():
a = int(’20’)
type(a) # =>
С помощью функции int() можно преобразовать число, записанное двоичным форматом, в десятичную запись:
a = int('110011', 2)
a # => 51
Преобразовать десятичное число в двоичный формат можно при помощи функции bin() :
a = bin(20)
a # => 0b10100
Аналогично можно преобразовать в шестнадцатеричный формат при помощи функции hex() :
a = hex(20)
a # => 0x14
Обратите внимание, функции bin() и hex() возвращают результат в виде строки.
Мы еще не рассматривали списки (они будут рассмотрены далее), но все равно рассмотрим, как преобразовать строку в список:
a = list('Hello')
a # => ['H', 'e', 'l', 'l', 'o']
Обратите внимание, в список можно преобразовывать только итерируемые объекты (строки, кортежи, словари, файлы), т.е. те объекты, которые могут возвращать элементы по одному. Сейчас это может быть не совсем понятно, но далее все прояснится.
Для преобразования строки (или другого итерируемого объекта) во множество, используйте функцию set() :
a = set(‘Hello, World’)
a # =>
Напомню, множество – это изменяемая, неупорядоченная последовательность уникальных элементов. Далее пример, как получить все уникальные элементы списка:
a = set([1, 1, 2, 2, 3, 3, 3, 3, 3, 5])
a # =>
Для преобразования объекта в кортеж, существует функция tuple() :
a = tuple([1, 2, 3, 4, 5])
a # => (1, 2, 3, 4, 5)
Напомню, кортеж – это неизменяемый список.
И последняя функция str() , для преобразования объекта в строку:
a = str(10)
print("Ответ: " + a) # => Ответ: 10
Проверка типов
При преобразовании типов могут возникнуть проблемы, например:
a = list(10) # => TypeError: 'int' object is not iterable
a = int('b') # => invalid literal for int() with base 10: 'b'
Проблема кажется надуманной. Но все же иногда возникает необходимость проверить, с каким типом данных мы работаем. Например, вам нужно пройтись по списку строк и преобразовать все элементы, содержащие числа, в числовой тип. Для этих целей есть метод isdigit() . Метод isdigit() вернет True , если строка состоит только из цифр:
'a'.isdigit() # => False
'20a'.isdigit() # => False
'20'.isdigit() # => True
Чтобы проверить строку на наличие в своем составе только букв, используйте метод isalpha() .
'a'.isalpha() # => True
'20a'.isalpha() # => False
И последний метод isalnum() , который проверяет, состоит ли строка из цифр или букв.
Часто, исходя из полученного результата (строка, число, список и т.д.) необходимо строить ход программы с использованием условной конструкции, о которой вы узнали в предыдущем уроке:
a = 'Hello'
a = list(a)
if (type(a) == str):
print('Строка')
elif (type(a) == list):
print('Список)
В этом помогает функция type() , которая возвращает тип объекта, переданного в параметре.
В этом уроке мы еще раз повторили преобразование одних типов в другие и научились определять тип переменной для последующей корректной ее обработки.