Перейти к содержимому

Как из строки сделать кортеж python

  • автор:

Кортежи (tuple)

Python 3 логотип

Сегодня я расскажу о таком типе данных, как кортежи (tuple) и о том, где они применяются.

Кортеж, по сути — неизменяемый список.

Зачем нужны кортежи, если есть списки?

  • Защита от дурака. То есть кортеж защищен от изменений, как намеренных (что плохо), так и случайных (что хорошо).
  • Меньший размер. Дабы не быть голословным:

Как работать с кортежами?

С преимуществами кортежей разобрались, теперь встает вопрос — а как с ними работать. Примерно так же, как и со списками.

Создаем пустой кортеж:

    Создаем кортеж из одного элемента:
 
 
 

Ну и создать кортеж из итерируемого объекта можно с помощью все той же пресловутой функции tuple()

Операции с кортежами

Все операции над списками, не изменяющие список (сложение, умножение на число, методы index() и count() и некоторые другие операции). Можно также по-разному менять элементы местами и так далее.

Например, гордость программистов на python - поменять местами значения двух переменных:

Для вставки кода на Python в комментарий заключайте его в теги

  • Модуль csv - чтение и запись CSV файлов
  • Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
  • Онлайн-обучение Python: сравнение популярных программ
  • Книги о Python
  • GUI (графический интерфейс пользователя)
  • Курсы Python
  • Модули
  • Новости мира Python
  • NumPy
  • Обработка данных
  • Основы программирования
  • Примеры программ
  • Типы данных в Python
  • Видео
  • Python для Web
  • Работа для Python-программистов
  • Сделай свой вклад в развитие сайта!
  • Самоучитель Python
  • Карта сайта
  • Отзывы на книги по Python
  • Реклама на сайте

Преобразование строк в список, кортеж или множество символов

Для преобразования строки в список символов необходимо исходную строку передать в класс list() . Это полезно для каких то преобразований в цикле с отдельными символами в строке (удаление/добавление/изменение) или если нужно отобразить строку наоборот (развернуть строку).

Пример преобразования строки в список символов и совершение различных манипуляции.

>>> line = 'абракадабра' >>> line_list = list(line) >>> line_list # ['а', 'б', 'р', 'а', 'к', 'а', 'д', 'а', 'б', 'р', 'а'] # изменим 4 символ на 'у', добавим в конец 'с' и удалим 1 символ >>> line_list[3] = 'y' >>> line_list.append('c') >>> line_list.pop(0) >>> line_list # ['б', 'р', 'y', 'к', 'а', 'д', 'а', 'б', 'р', 'а', 'c'] # развернем строку >>> rev = list(reversed(line_list)) >>> rev # ['c', 'а', 'р', 'б', 'а', 'д', 'а', 'к', 'y', 'р', 'б'] # теперь снова получим строку >>> line = ''.join(rev) >>> line # 'cарбадакyрб' 

Преобразование строки в кортеж производится аналогичным способом, только строка передается в класс tuple() . Кортеж это неизменяемый тип данных, следовательно дальнейшие изменения кортежа недоступны.

# преобразование строки в кортеж символов >>> line = 'абракадабра' >>> line_tuple = tuple(line) >>> line_tuple # ('а', 'б', 'р', 'а', 'к', 'а', 'д', 'а', 'б', 'р', 'а') # теперь снова получим строку >>> line = ''.join(line_tuple) # 'абракадабра' 

Преобразование строки в множество полезно, когда необходимо получить уникальные символы в строке (без повторов). Обратите внимание на то, что после преобразования строки в множество порядок следования символов не сохраняется!

# преобразование строки в множество символов >>> line = 'абракадабра' >>> line_set = set(line) >>> line_set #

Преобразование символов строки в код ASCII и обратно.

В Python есть возможность выполнить преобразование одиночного символа в его целочисленный код ASCII, для чего нужно передать этот символ функции ord() , она возвращает фактическое числовое значение соответствующего байта в памяти. Обратное преобразование выполняется с помощью функции chr() , она получает целочисленный код ASCII и преобразует его в соответствующий символ:

>>> ord('s') # 115 >>> chr(115) # 's' 

Эти функции можно применить ко всем символам строки в цикле. Например, чтобы получить следующий по алфавиту символ, его можно преобразовать в число и выполнить математическое действие над ним:

>>> x = 'А' >>> y = ord(x) + 1 >>> chr(y) # 'Б' 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Преобразование строки в число
  • Строку в список, кортеж или множество символов
  • Одинарные, двойные и тройные кавычки в строке Python
  • Вывод специальных символов в строке Python "как есть"
  • Объединение и повторение строк
  • Индексирование строк
  • Использование срезов строк
  • Cрез строки Python от заданного символа/знака до конца строки
  • Создание макета для печати базовыми методами строк
  • Способы форматирования текстовых строк
  • Подсчет повторений слов в тексте, деление строки на список слов
  • Удаление слова из строки Python по фрагменту или шаблону
  • Удаление пунктуации из строки
  • Деление строки по заглавным буквам
  • Создание отчетов и писем по шаблонам

Из кортежа в строку Python – 3 метода преобразования

Мы знаем, что списки, кортежи и словари – это структуры данных, доступные в Python, которые позволяют нам точно создавать длинные коды.

Давайте кратко рассмотрим кортеж в Python. Кортежи – это тип структуры данных в Python, который является неизменяемым, а элементы кортежа заключены в круглые скобки.

tup =(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

tup3 =(‘C’, ‘C ++’, ‘JAVA’, ‘Python’, ‘R’).

В этой статье мы обсудим методы преобразования кортежа в строку в Python:

  1. Использование цикла for.
  2. Использование join().
  3. Используя reduce().

Давайте рассмотрим каждый из них.

Метод 1: Использование цикла for

В первом методе мы будем использовать цикл for для преобразования кортежа Python в строку. В этой программе цикл for поможет нам взять каждый итератор из кортежа и применить к нему функцию.

Следующая программа показывает, как это можно сделать.

def convert_tuple(c_tuple): str='' for i in c_tuple: str=str+i return str c_tuple=('P','y','t','h','o','n','a','t','J','T','P') c_string=convert_tuple(c_tuple) print(c_string)
PythonatJTP

Давайте разберемся, что произошло в приведенной выше программе.

  1. Мы создали функцию, которая преобразует элемент из кортежа в строку.
  2. В определении программы мы упомянули, что каждый итератор берет элемент и объединяет его с объявленной пустой строкой. Эта функция наконец вернет результирующую строку.
  3. Вне функции мы объявили наш кортеж с именем c_tuple, а затем передали его в нашу функцию.
  4. При выполнении этой программы отображается ожидаемый результат.

Метод 2: Использование метода join()

В следующей программе мы увидим, как метод join() помогает нам сделать то же самое. Метод join() берет элементы и объединяет их в строку.

Следующая программа показывает, как это можно сделать:

def convert_tuple(c_tuple): str=''.join(c_tuple) return str c_tuple=('P','y','t','h','o','n','a','t','J','T','P') c_string=convert_tuple(c_tuple) print(c_string)
PythonatJTP

Давайте разберемся, что произошло в приведенной выше программе.

  1. Мы создали функцию, которая преобразует элемент из кортежа в строку.
  2. В определении программы мы упомянули, что метод join() возьмет элементы из c_tuple и объединит их с пустой строкой. Эта функция наконец вернет результирующую строку.
  3. Вне функции мы объявили наш кортеж с именем c_tuple, а затем передали его в нашу функцию.
  4. При выполнении этой программы отображается ожидаемый результат.

Метод 3: С помощью reduce()

Здесь мы будем использовать сокращение для преобразования. Следующая программа показывает, как это можно сделать на Python.

import functools import operator def convert_tuple(c_tuple): res_str = functools.reduce(operator.add,(c_tuple)) return res_str c_tuple =('P', 'y', 't', 'h', 'o', 'n', 'a', 't', 'J', 'T', 'P') c_string = convertTuple(c_tuple) print(c_string)
PythonatJTP
  1. Первым шагом здесь является импорт функций и операторов.
  2. После этого мы создали функцию, которая преобразует элемент из кортежа в строку.
  3. В определении программы мы указали параметры operator.add (это добавит каждый элемент из кортежа в строку) внутри метода functools.reduce. Эта функция вернет результирующую строку.
  4. Вне функции мы объявили наш кортеж с именем c_tuple, а затем передали его в нашу функцию.
  5. При выполнении этой программы отображается ожидаемый результат.

Python. Урок 8. Кортежи (tuple)

Follow us on Google Plus Follow us on rss

Данный урок посвящен кортежам (tuple) в Python. Основное внимание уделено вопросу использования кортежей, почему иногда лучше применять их, а не списки, рассмотрены способы создания и основные приемы работы с кортежами. Также затронем тему преобразования кортежа в список и обратно.

Что такое кортеж (tuple) в Python?

Кортеж (tuple) – это неизменяемая структура данных, которая по своему подобию очень похожа на список. Как вы наверное знаете, а если нет, то, пожалуйста, ознакомьтесь с седьмым уроком, список – это изменяемый тип данных. Т.е. если у нас есть список a = [1, 2, 3] и мы хотим заменить второй элемент с 2 на 15, то мы может это сделать, напрямую обратившись к элементу списка.

>>> a = [1, 2, 3] >>> print(a) [1, 2, 3] >>> a[1] = 15 >>> print(a) [1, 15, 3]

С кортежем мы не можем производить такие операции, т.к. элементы его изменять нельзя.

>>> b = (1, 2, 3) >>> print(b) (1, 2, 3) >>> b[1] = 15 Traceback (most recent call last): File "", line 1, in module> b[1] = 15 TypeError: 'tuple' object does not support item assignment

Зачем нужны кортежи в Python?

Существует несколько причин, по которым стоит использовать кортежи вместо списков. Одна из них – это обезопасить данные от случайного изменения. Если мы получили откуда-то массив данных, и у нас есть желание поработать с ним, но при этом непосредственно менять данные мы не собираемся, тогда, это как раз тот случай, когда кортежи придутся как нельзя кстати. Используя их в данной задаче, мы дополнительно получаем сразу несколько бонусов – во-первых, это экономия места. Дело в том, что кортежи в памяти занимают меньший объем по сравнению со списками.

>>> lst = [10, 20, 30] >>> tpl = (10, 20, 30) >>> print(lst.__sizeof__()) 32 >>> print(tpl.__sizeof__()) 24 

Во-вторых – прирост производительности, который связан с тем, что кортежи работают быстрее, чем списки (т.е. на операции перебора элементов и т.п. будет тратиться меньше времени). Важно также отметить, что кортежи можно использовать в качестве ключа у словаря.

Создание, удаление кортежей и работа с его элементами

Создание кортежей

Для создания пустого кортежа можно воспользоваться одной из следующих команд.

>>> a = () >>> print(type(a)) 'tuple'> >>> b = tuple() >>> print(type(b)) 'tuple'>

Кортеж с заданным содержанием создается также как список, только вместо квадратных скобок используются круглые.

>>> a = (1, 2, 3, 4, 5) >>> print(type(a)) class 'tuple'> >>> print(a) (1, 2, 3, 4, 5)

При желании можно воспользоваться функцией tuple().

>>> a = tuple((1, 2, 3, 4)) >>> print(a) (1, 2, 3, 4)

Доступ к элементам кортежа

Доступ к элементам кортежа осуществляется также как к элементам списка – через указание индекса. Но, как уже было сказано – изменять элементы кортежа нельзя!

>>> a = (1, 2, 3, 4, 5) >>> print(a[0]) 1 >>> print(a[1:3]) (2, 3) >>> a[1] = 3 Traceback (most recent call last): File "", line 1, in module> a[1] = 3 TypeError: 'tuple' object does not support item assignment

Удаление кортежей

Удалить отдельные элементы из кортежа невозможно.

>>> a = (1, 2, 3, 4, 5) >>> del a[0] Traceback (most recent call last): File "", line 1, in module> del a[0] TypeError: 'tuple' object doesn't support item deletion 

Но можно удалить кортеж целиком.

>>> del a >>> print(a) Traceback (most recent call last): File "", line 1, in module> print(a) NameError: name 'a' is not defined

Преобразование кортежа в список и обратно

На базе кортежа можно создать список, верно и обратное утверждение. Для превращения списка в кортеж достаточно передать его в качестве аргумента функции tuple().

>>> lst = [1, 2, 3, 4, 5] >>> print(type(lst)) 'list'> >>> print(lst) [1, 2, 3, 4, 5] >>> tpl = tuple(lst) >>> print(type(tpl)) 'tuple'> >>> print(tpl) (1, 2, 3, 4, 5)

Обратная операция также является корректной.

>>> tpl = (2, 4, 6, 8, 10) >>> print(type(tpl)) 'tuple'> >>> print(tpl) (2, 4, 6, 8, 10) >>> lst = list(tpl) >>> print(type(lst)) 'list'> >>> print(lst) [2, 4, 6, 8, 10]

P.S.

Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.

Раздел: Python Уроки по Python Метки: Python, Уроки Python

Python. Урок 8. Кортежи (tuple) : 5 комментариев

  1. Владимир 15.01.2019 Сорян за глупый вопрос, но я только начинаю изучать Python.
    И так, есть два или более кортежей и нужно найти элементы, общие для этих кортежей, т е. взять пересечение множеств. Существует ли в питоне для этого оператор (функция, метод, …) или нужно самому “городить” такую функцию? Или может есть какая-нибудь подключаемая библиотека с такой функцией?
  1. writer 09.02.2019 Добрый день!
    Если вы хотите выполнять операции пересечения и т.п. лучше для этих целей использовать тип данных не кортеж (tuple), а множество (set)
  1. Андрей 24.10.2020 f(*opt)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *