Из кортежа в строку Python – 3 метода преобразования
Мы знаем, что списки, кортежи и словари – это структуры данных, доступные в Python, которые позволяют нам точно создавать длинные коды.
Давайте кратко рассмотрим кортеж в Python. Кортежи – это тип структуры данных в Python, который является неизменяемым, а элементы кортежа заключены в круглые скобки.
tup =(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
tup3 =(‘C’, ‘C ++’, ‘JAVA’, ‘Python’, ‘R’).
В этой статье мы обсудим методы преобразования кортежа в строку в Python:
- Использование цикла for.
- Использование join().
- Используя 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
Давайте разберемся, что произошло в приведенной выше программе.
- Мы создали функцию, которая преобразует элемент из кортежа в строку.
- В определении программы мы упомянули, что каждый итератор берет элемент и объединяет его с объявленной пустой строкой. Эта функция наконец вернет результирующую строку.
- Вне функции мы объявили наш кортеж с именем c_tuple, а затем передали его в нашу функцию.
- При выполнении этой программы отображается ожидаемый результат.
Метод 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
Давайте разберемся, что произошло в приведенной выше программе.
- Мы создали функцию, которая преобразует элемент из кортежа в строку.
- В определении программы мы упомянули, что метод join() возьмет элементы из c_tuple и объединит их с пустой строкой. Эта функция наконец вернет результирующую строку.
- Вне функции мы объявили наш кортеж с именем c_tuple, а затем передали его в нашу функцию.
- При выполнении этой программы отображается ожидаемый результат.
Метод 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
- Первым шагом здесь является импорт функций и операторов.
- После этого мы создали функцию, которая преобразует элемент из кортежа в строку.
- В определении программы мы указали параметры operator.add (это добавит каждый элемент из кортежа в строку) внутри метода functools.reduce. Эта функция вернет результирующую строку.
- Вне функции мы объявили наш кортеж с именем c_tuple, а затем передали его в нашу функцию.
- При выполнении этой программы отображается ожидаемый результат.
Кортежи в Python
Кортеж в Python похож на список. Только в отличие от списка кортеж — неизменяемый, то есть менять его элементы после создания нельзя.
Как создать кортеж
Чтобы создать кортеж, нужно поместить все элементы, разделенные запятыми, в круглые скобки () . Скобки не обязательны, но рекомендуем их использовать.
Кортеж может иметь любое количество элементов разных типов (целые числа, числа с плавающей точкой, списки, строки и т. д).
# Разные типы кортежей # Пустой кортеж my_tuple = () print(my_tuple) # Кортеж с целыми числами my_tuple = (1, 2, 3) print(my_tuple) # Кортеж с разными типами данных my_tuple = (1, "Привет", 3.4) print(my_tuple) # Вложенный кортеж my_tuple = ("мышь", [8, 4, 6], (1, 2, 3)) print(my_tuple)
Вывод:
()
(1, 2, 3)
(1, 'Привет', 3.4)
('мышь', [8, 4, 6], (1, 2, 3))
Кортеж можно создать и без использования скобок. Это называется упаковкой кортежа.
# упаковываем кортеж my_tuple = 3, 4.6, "собака" print(my_tuple) # точно так же можно распаковать кортеж a, b, c = my_tuple print(a) # 3 print(b) # 4.6 print(c) # собака
Вывод:
(3, 4.6, 'собака')
3
4.6
собака
Если нужно создать кортеж с одним элементом, все немного сложнее. Дело в том, что одного элемента в круглых скобках недостаточно. Понадобится добавить в конец запятую — иначе Python не поймет, что это кортеж.
my_tuple = ("привет") print(type(my_tuple)) # # Создаем кортеж с одним элементом my_tuple = ("привет",) print(type(my_tuple)) # # Можно и без скобок my_tuple = "привет", print(type(my_tuple)) #
Вывод:
Как получить элемент кортежа
1. По индексу
Мы можем использовать оператор индекса [] , чтобы получить доступ к элементу кортежа.
Примечание. Обратите внимание, что индексирование кортежа начинается с 0. То есть первый элемент кортежа имеет индекс 0.
Кортеж из 9 элементов будет иметь индексы от 0 до 8. Попытка получить доступ к индексу за пределами диапазона индексов кортежа (в нашем случае 9, 10 и т. д.) приведет к ошибке IndexeError.
Индекс должен быть целым числом, поэтому мы не можем использовать float или другие типы в качестве индекса. Это приведет к ошибке TypeError.
Точно так же доступ к вложенным кортежам осуществляется с помощью вложенной индексации, как показано в примере ниже.
my_tuple = ('c', 'o', 'd', 'e', 'c', 'h', 'i', 'c', 'k') print(my_tuple[0]) # 'c' print(my_tuple[5]) # 'h' # Вызов print(my_tuple[9]) приведет к ошибке # IndexError: list index out of range # Вызов my_tuple[2.0] приведет к ошибке # TypeError: list indices must be integers, not float # Индекс должен быть целым числом # вложенный кортеж n_tuple = ("мышь", [8, 4, 6], (1, 2, 3)) # вложенное индексирование print(n_tuple[0][3]) # 'ь' print(n_tuple[1][1]) # 4
Вывод:
c
h
ь
4
2. По отрицательному индексу
Python допускает отрицательную индексацию коллекций (наборов значений). Она работает и с кортежами.
Индекс -1 отсылает к последнему элементу, -2 — ко второму элементу с конца и так далее.
my_tuple = ('c', 'o', 'd', 'e', 'c', 'h', 'i', 'c', 'k') # Вывод: 'k' print(my_tuple[-1]) # Вывод: 'c' print(my_tuple[-9])
Вывод:
3. С помощью срезов
Получить доступ к диапазону элементов в кортеже можно с помощью оператора срезов : .
Использование срезов еще называют слайсингом, от английского slicing — «нарезка».
my_tuple = ('c', 'o', 'd', 'e', 'c', 'h', 'i', 'c', 'k') # элементы со 2 по 4 # Вывод: ('o', 'd', 'e') print(my_tuple[1:4]) # элементы от начала и до второго элемента # Вывод: ('c', 'o') print(my_tuple[:-7]) # два последних элемента # Вывод: ('c', 'k') print(my_tuple[7:]) # все элементы от начала до конца # Вывод: ('c', 'o', 'd', 'e', 'c', 'h', 'i', 'c', 'k') print(my_tuple[:])
Вывод:
('o', 'd', 'e')
('c', 'o')
('c', 'k')
('c', 'o', 'd', 'e', 'c', 'h', 'i', 'c', 'k')
Как изменить кортеж
Никак. В отличие от списков, кортежи неизменяемы. Это значит, что элементы кортежа нельзя изменять после добавления в кортеж. Однако если элемент сам по себе является изменяемым типом данных (например, списком), его вложенные элементы менять уже можно.
Переназначить кортеж тоже можно.
my_tuple = (4, 2, 3, [6, 5]) # my_tuple[1] = 9 # Эта строка приведет к ошибке # TypeError: 'tuple' object does not support item assignment # Значения изменяемого элемента менять можно my_tuple[3][0] = 9 # Вывод: (4, 2, 3, [9, 5]) print(my_tuple) # Можно переназначить кортеж my_tuple = ('c', 'o', 'd', 'e', 'c', 'h', 'i', 'c', 'k') # Вывод: ('c', 'o', 'd', 'e', 'c', 'h', 'i', 'c', 'k') print(my_tuple)
Вывод:
(4, 2, 3, [9, 5])
('c', 'o', 'd', 'e', 'c', 'h', 'i', 'c', 'k')
В Python кортежи можно объединить с помощью оператора + . Это называется конкатенацией.
С помощью оператора * можно повторить элементы в кортеже заданное количество раз.
Оба оператора + и * приводят к созданию нового кортежа.
# Конкатенация #Вывод: (1, 2, 3, 4, 5, 6) print((1, 2, 3) + (4, 5, 6)) # Повторение # Вывод: ('Повторить', 'Повторить', 'Повторить') print(("Повторить",) * 3)
Вывод:
(1, 2, 3, 4, 5, 6)
('Повторить', 'Повторить', 'Повторить')
Как удалить кортеж
Изменять элементы кортежа нельзя. Это значит, что удалять их тоже нельзя.
В Python можно только полностью удалить кортеж — с помощью ключевого слова del .
my_tuple = ('c', 'o', 'd', 'e', 'c', 'h', 'i', 'c', 'k') # нельзя удалить элементы кортежа # TypeError: 'tuple' object doesn't support item deletion # del my_tuple[3] # зато можно удалить кортеж полностью del my_tuple # вызов приведет к ошибке NameError: name 'my_tuple' is not defined print(my_tuple)
Вывод:
Traceback (most recent call last):
File "", line 12, in
NameError: name 'my_tuple' is not defined
Методы кортежа
Методы добавления или удаления элементов недоступны для кортежа в силу его неизменяемости.
Для кортежа существует только два метода: .count() и .index() .
my_tuple = ('я', 'б', 'л', 'о', 'к', 'о',) print(my_tuple.count('о')) # Вывод: 2 print(my_tuple.index('к')) # Вывод: 4
Вывод:
Другие операции с кортежами
1. Проверка на вхождение в кортеж
Мы можем проверить, существует ли тот или иной элемент в кортеже или нет, с помощью ключевого слова in и not in .
my_tuple = ('я', 'б', 'л', 'о', 'к', 'о',) print('я' in my_tuple) print('х' in my_tuple) print('п' not in my_tuple)
Вывод:
True
False
True
2. Итерирование по кортежу
Для перебора элементов кортежа можно использовать цикл for .
for name in ('Андрей', 'Маша'): print("Привет, ", name)
Вывод:
Привет, Андрей
Привет, Маша
Преимущества кортежа над списком
Кортежи очень похожи на списки, поэтому они используются в похожих ситуациях. Выбор зависит от задачи. В одном случае эффективнее будет работать кортеж, а в другом — не обойтись без списка.
СodeСhick.io — простой и эффективный способ изучения программирования.
2023 © ООО «Алгоритмы и практика»
Как кортеж преобразовать в строку python
2. Кортежи поддерживают неограниченный уровень вложенности:
numbers = ((4, 5, 8, (5, 1, (5, 3))), (7, 2, (4, 5, (3, 1, 1))))
3. Кортежи работают немного быстрее, чем списки – это связано с особенностями хранения tuple в памяти:
>>> from timeit import timeit >>> times = 1000000 >>> t1 = timeit("list(['груша', 'виноград','яблоко', 'банан', 'апельсин'])", number=times) >>> t2 = timeit("tuple(('груша', 'виноград','яблоко', 'банан', 'апельсин'))", number=times) >>> diff = "".format((t2 - t1)/t1) >>> print(f'Время копирования списка раз: ') Время копирования списка 1000000 раз: 0.5761922669999961 >>> print(f'Время копирования кортежа раз: ') Время копирования кортежа 1000000 раз: 0.22475764600000048 >>> print(f'Разница: ') Разница: -61%
4. Кортежи занимают меньше места в памяти:
>>> from sys import getsizeof >>> numbers1 = ((1, 2, 3, 4), (5, 4, 5)) >>> numbers2 = [[1, 2, 3, 4], [5, 4, 5]] >>> print(getsizeof(numbers1)) 36 >>> print(getsizeof(numbers2)) 44
5. Кортежи поддерживают конкатенацию + и повторение * n :
>>> num1 = (1, 2, 3) >>> num2 = (4, 5, 6) >>> print(num1 + num2) (1, 2, 3, 4, 5, 6) >>> print(num1 * 3) (1, 2, 3, 1, 2, 3, 1, 2, 3)
6. Элементы tuple можно использовать в качестве значений переменных; этот прием называют распаковкой кортежа:
>>> seasons = ('весна', 'лето', 'осень', 'зима') >>> s1, s2, s3, s4 = seasons >>> print(s1, s3) весна осень
Создание tuple в Питоне
Пустой кортеж можно создать двумя способами – с помощью круглых скобок () и с использованием функции tuple() :
my_tuple = () my_tuple2 = tuple()
При создании кортежа с одним элементом после этого элемента необходимо ставить запятую, иначе Python не определяет конструкцию как кортеж:
>>> my_tuple = (5) >>> print(type(my_tuple)) >>> my_tuple = (5,) >>> print(type(my_tuple))
Создать кортеж с несколькими элементами можно следующими способами.
Способ 1: Перечисление элементов
Как и в случае со списками и словарями , кортеж с данными можно создать вручную. Кортеж может содержать данные различных типов:
info = ('Егор', 'разработчик', 350000, 28)
Элементы кортежа необязательно перечислять в круглых скобках – когда Python получает более одного значения для переменной, создание («упаковка») кортежа происходит автоматически:
>>> letters = 'a', 'b', 'c', 'd' >>> print(letters) ('a', 'b', 'c', 'd')
Способ 2: Преобразование других типов данных
С помощью встроенной функции tuple() можно создать кортеж из списка, строки или множества:
>>> my_lst = [4, 6, 2, 8] >>> print(tuple(my_lst)) (4, 6, 2, 8) >>> my_str = 'Я изучаю Python' >>> print(tuple(my_str)) ('Я', ' ', 'и', 'з', 'у', 'ч', 'а', 'ю', ' ', 'P', 'y', 't', 'h', 'o', 'n') >>> my_set = >>> print(tuple(my_set)) (2, 5, 6, 7)
Однако при подобном преобразовании словаря в кортеж останутся только ключи:
>>> my_dict = >>> print(tuple(my_dict)) ('яблоки', 'апельсины')
Число напрямую преобразовать в кортеж нельзя:
>>> num = 178394 >>> print(tuple(num)) Traceback (most recent call last): File "", line 1, in TypeError: 'int' object is not iterable
Но если конвертировать число в строку, преобразование пройдет без ошибок:
>>> num = 31232534 >>> print(tuple(str(num))) ('3', '1', '2', '3', '2', '5', '3', '4')
В ходе преобразования строки в кортеж с помощью одной лишь функции tuple() строка разбивается на отдельные символы. Если нужно разбить строку по одному разделителю, подойдет метод partition() :
>>> st = 'Я изучаю***Python' >>> print(st.partition('***')) ('Я изучаю', '***', 'Python')
Чтобы разбить строку по всем разделителям, вместе с tuple() используют split() :
>>> st = tuple(input().split()) Код на языке Python >>> print(st) ('Код', 'на', 'языке', 'Python')
Способ 3: Генератор кортежей
Генераторы кортежей, в отличие от списков и словарей, не слишком удобно использовать для решения практических задач:
>>> my_tuple = (i for i in range(5)) >>> print(my_tuple) at 0x023B5830>
Но если генератор кортежа все-таки необходимо использовать, это можно сделать двумя способами:
1. Распаковать сгенерированный объект при выводе:
>>> numbers = (i for i in range(10)) >>> print(*numbers) 0 1 2 3 4 5 6 7 8 9
2. Либо использовать в генераторе функцию tuple() :
>>> my_tuple = tuple(i ** 2 for i in range(1, 12, 2)) >>> print(my_tuple) (1, 9, 25, 49, 81, 121)
Способ 4: Распаковка строк и списков
Оператор распаковки * и запятая после имени переменной автоматически превращают строки и списки в кортежи:
>>> st = 'Я изучаю Python' >>> sp = ['Python', 'HTML5', 'CSS', 'JavaScript'] >>> tuple1 = (*st,) >>> tuple2 = (*sp,) >>> print(tuple1) ('Я', ' ', 'и', 'з', 'у', 'ч', 'а', 'ю', ' ', 'P', 'y', 't', 'h', 'o', 'n') >>> print(tuple2) ('Python', 'HTML5', 'CSS', 'JavaScript')
Методы кортежей Python
Кортежи поддерживают большинство методов списков, за исключением удаления элементов и присваивания им новых значений:
>>> my_tuple = (4, 5, 6) >>> del my_tuple[1] Traceback (most recent call last): File "", line 1, in TypeError: 'tuple' object doesn't support item deletion >>> my_tuple[2] = 9 Traceback (most recent call last): File "", line 1, in TypeError: 'tuple' object does not support item assignment
Индексация и срезы
Индексация и срезы в кортежах работают так же, как и в списках:
>>> my_tuple = ('банан', 'груша', 'манго') >>> print(my_tuple[0], my_tuple[-1]) банан манго >>> print(my_tuple[1:]) ('груша', 'манго') >>> print(my_tuple[::-1]) ('манго', 'груша', 'банан')
Для возвращения индексa элемента используется index() :
>>> nutr = ('белки', 'жиры', 'углеводы') >>> print(nutr.index('белки')) 0
Длина, сумма, минимальный и максимальный элементы
Эти методы тоже аналогичны списочным:
>>> my_tuple = ('карандаш', 'ручка', 'шар') >>> print(len(my_tuple)) 3 >>> print(min(my_tuple, key=len)) шар >>> print(max(my_tuple, key=len)) карандаш >>> nums = (4, 5, 2, 1, 6) >>> print(sum(nums)) 18
Принадлежность
С помощью операторов in и not in можно убедиться в наличии (отсутствии) определенного значения в кортеже:
>>> nums = (1, 3, 5, 6, 7, 8) >>> (5 in nums) True >>> (25 not in nums) True
Подсчет элементов
Для подсчета числа вхождений какого-либо значения в кортеже используется count() :
>>> cities = ('Москва', 'Ростов', 'Москва', 'Рязань', 'Саратов', 'Москва') >>> print(cities.count('Москва')) 3
Сортировка
Кортежи поддерживают сортировку, однако результатом будет список:
>>> nums = (4, 1, 7, 2, 0, 9, 5) >>> print(sorted(nums)) [0, 1, 2, 4, 5, 7, 9]
Если результат должен сохраняться в виде кортежа, нужно использовать tuple() :
>>> nums = (4, 1, 7, 2, 0, 9, 5) >>> print(tuple(sorted(nums, reverse=True))) (9, 7, 5, 4, 2, 1, 0)
Преобразование кортежей в другие типы данных
Кортеж можно преобразовать в строку:
>>> letters = ('P', 'y', 't', 'h', 'o', 'n') >>> print('*'.join(letters)) P*y*t*h*o*n
>>> sp = (2, 7, 5, 8, 1) >>> print(list(sp)) [2, 7, 5, 8, 1]
В словарь (если кортеж вложенный и состоит из пар значений):
>>> info = (('фрукты', 5), ('овощи', 15), ('конфеты', 3)) >>> print(dict(info))
>>> numbers = (3, 2, 1, 6, 7, 2, 2, 9) >>> print(set(numbers))
Сравнение кортежей
>>> tuple1 = (1, 2, 3) >>> tuple2 = (4, 5, 6) >>> print(tuple1 < tuple2) True >>> print(tuple1 != tuple2) True
Практика
Задание 1
Напишите программу, которая:
- Создает кортежи из положительных и отрицательных целых чисел на основе полученной от пользователя строки.
- Выводит количество положительных и отрицательных чисел в этих кортежах.
Пример ввода:
45 -6 -9 43 23 5 2 -9 -1 6 3
Кортеж (45, 43, 23, 5, 2, 6, 3) состоит из 7 положительных чисел Кортеж (-6, -9, -9, -1) состоит из 4 положительных чисел
numbers = tuple(map(int, input().split())) pos = tuple(i for i in numbers if i > 0) neg = tuple(i for i in numbers if i < 0) print(f'Кортеж состоит из положительных чисел') print(f'Кортеж состоит из положительных чисел')
Задание 2
Напишите программу, которая:
- Создает кортеж из полученной от пользователя строки, состоящей из вещественных чисел, разделенных пробелами.
- Выводит минимальный и максимальный элементы кортежа, а также их сумму.
Пример ввода:
3.45 6.78 8.99 1.45 4.32 19.04 0.55
Минимальное число: 0.55 Максимальное число: 19.04 Сумма min и max: 19.59
my_tuple = tuple(map(float, input().split())) print(f'Минимальное число: ') print(f'Максимальное число: ') print(f'Сумма min и max: <((min(my_tuple) + max(my_tuple))):.2f>')
Задание 3
Имеется кортеж списков, в которых перечислены названия фруктов и калорийность:
fruit = (['яблоки', 46], ['персики', 49], ['лимоны', 36], ['виноград', 190])
Калорийность винограда указана ошибочно. Напишите программу, которая исправит калорийность на 75 , и добавит в третий элемент кортежа новое значение ['айва', 42] . Результат должен выглядеть так:
fruit = (['яблоки', 46], ['персики', 49], ['лимоны', 36, 'айва', 42], ['виноград', 75])
fruit = (['яблоки', 46], ['персики', 49], ['лимоны', 36], ['виноград', 190]) fruit[3][1] = 75 fruit[2].extend(['айва', 42]) print(fruit)
Задание 4
Имеется вложенный кортеж:
numbers = ((5, 4, 5, 4), (3, 3, 4, 6), (8, 9, 5, 4), (12, 4, 5, 1), (9, 3, 5, 1))
Напишите программу, которая формирует новый кортеж, состоящий из средних арифметических значений элементов numbers . Результат выводится в следующем виде:
4.5 4.0 6.5 5.5 4.5
numbers = ((5, 4, 5, 4), (3, 3, 4, 6), (8, 9, 5, 4), (12, 4, 5, 1), (9, 3, 5, 1)) avg = tuple(sum(i)/len(i) for i in numbers) print(*avg)
Задание 5
Имеется вложенный кортеж:
nested_tuple = ((12, 3, 1), (5, 11), (15, 7, 8, 9), (10, 6, 4))
Напишите программу для преобразования nested_tuple в обычный кортеж, упорядоченный по возрастанию:
(1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15)
nested_tuple = ((12, 3, 1), (5, 11), (15, 7, 8, 9), (10, 6, 4)) res = [] flat_list = [res.extend(i) for i in nested_tuple] print(tuple(sorted(res)))
Задание 6
Напишите программу для сортировки вложенного кортежа по третьему элементу. Исходный кортеж:
(('красный', 33, 55), ('зеленый', 17, 44), ('синий', 12, 3), ('черный', 2, 5))
(('черный', 2, 5), ('синий', 12, 3), ('зеленый', 17, 44), ('красный', 33, 55))
В качестве ключа сортировки следует использовать конструкцию key=lambda x: x[2] – это анонимная функция. В последующих статьях мы будем подробно разбирать применение анонимных функций.
nested_tuple = (('красный', 33, 55), ('зеленый', 17, 44), ('синий', 12, 3), ('черный', 2, 5)) nested_tuple = tuple(sorted(list(nested_tuple), key=lambda x: x[2])) print(nested_tuple)
Задание 7
Напишите программу, которая:
- принимает на вход строку, состоящую из цифр или символов, разделенных пробелами;
- создает из строки кортеж;
- проверяет, состоит ли кортеж из одинаковых элементов;
- выводит True или False в зависимости от результатов проверки.
Для проверки соответствия всех элементов одному условию в Python используется встроенная функция all():
all(i == my_tuple[0] for i in my_tuple)
Пример ввода:
35 35 35 35 35
True
my_tuple = tuple(input().split()) print(all(i == my_tuple[0] for i in my_tuple))
Задание 8
Напишите программу, которая на основе исходного кортежа создает новый кортеж, из которого исключены все пользователи с номерами телефонов с региональным кодом +56.
Исходный кортеж:
info = (('Евгений Романов', 25, '+56(983)354-67-21'), ('Марина Дятлова', 22, '+56(190)251-45-79'), ('Кирилл Кудрявцев', 34, '+7(890)456-12-42'), ('Сергей Дятлов', 24, '+56(190)156-42-99'), ('Юлия Степанова', 21, '+16(398)355-33-09'), ('Тимофей Иванов', 34, '+7(918)222-52-77'))
Ожидаемый результат:
(('Кирилл Кудрявцев', 34, '+7(890)456-12-42'), ('Юлия Степанова', 21, '+16(398)355-33-09'), ('Тимофей Иванов', 34, '+7(918)222-52-77'))
info = (('Евгений Романов', 25, '+56(983)354-67-21'), ('Марина Дятлова', 22, '+56(190)251-45-79'), ('Кирилл Кудрявцев', 34, '+7(890)456-12-42'), ('Сергей Дятлов', 24, '+56(190)156-42-99'), ('Юлия Степанова', 21, '+16(398)355-33-09'), ('Тимофей Иванов', 34, '+7(918)222-52-77')) new_info = tuple([i for i in info if not i[2].startswith('+56')]) print(new_info)
Задание 9
Имеется кортеж списков:
numbers = ([4, 5], [4, 5], [1, 6], [7, 3], [3, 3], [2, 4], [9, 5], [1, 1])
Напишите программу, которая добавит цифру 5 в конец каждого списка.
Ожидаемый результат:
numbers = ([4, 5, 5], [4, 5, 5], [1, 6, 5], [7, 3, 5], [3, 3, 5], [2, 4, 5], [9, 5, 5], [1, 1, 5])
numbers = ([4, 5], [4, 5], [1, 6], [7, 3], [3, 3], [2, 4], [9, 5], [1, 1]) add = [i.extend([5]) for i in numbers] print(numbers)
Задание 10
Напишите программу, которая:
- получает на вход целое число n – количество точек на плоскости;
- получает n строк с координатами x, y ;
- определяет точку, наиболее удаленную от начала координат.
Пример ввода:
5 4 8 1 2 7 4 7 8 3 2
n = int(input()) points = [tuple(map(int, input().split())) for i in range(n)] mx = max(points, key=lambda x: x[0] ** 2 + x[1] ** 2) print(*mx)
Подведем итоги
Кортежи во многом похожи на списки. Выбор в пользу кортежей стоит делать тогда, когда необходимо защитить данные от случайного изменения. Кроме того, многие операции с кортежами выполняются быстрее и занимают меньше памяти. В следующей статье будем изучать множества.
- Особенности, сферы применения, установка, онлайн IDE
- Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
- Типы данных: преобразование и базовые операции
- Методы работы со строками
- Методы работы со списками и списковыми включениями
- Методы работы со словарями и генераторами словарей
- Методы работы с кортежами
- Методы работы со множествами
- Особенности цикла for
- Условный цикл while
- Функции с позиционными и именованными аргументами
- Анонимные функции
- Рекурсивные функции
- Функции высшего порядка, замыкания и декораторы
- Методы работы с файлами и файловой системой
- Регулярные выражения
- Основы скрапинга и парсинга
- Основы ООП: инкапсуляция и наследование
- Основы ООП – абстракция и полиморфизм
- Графический интерфейс на Tkinter
- Основы разработки игр на Pygame
- Основы работы с SQLite
- Основы веб-разработки на Flask
- Основы работы с NumPy
- Основы анализа данных с Pandas
Как кортеж преобразовать в строку python
11.2.4.2 конвертировать одну структуру данных в другую
Python. Конвертация структур данных (множества, строки, списки, кортежи)
Конвертация String в List и обратно по буквам
Строка — неизменяемый тип данных, поэтому для замены одного символа можно преобразовать в список, выполнить замену и получить строку обратно.
word = "caw"
word[1] = "o" # TypeError: 'str' object does not support item assignment
lst = list(word) # конвертация строки в список
print(lst) # вывод списка ["c", "a", "w"]
lst[1] = "o" # изменение второго элемента списка
print(lst) # вывод списка ["c", "o", "w"]
word = "".join(lst) # конвертация списка lst в строку word
print(word) # вывод строки cow
Конвертация String в List и обратно по словам
word = “My favourite subject is programming"
lst = word.split() # разделить строку по пробелам (по словам)
print(lst) # вывод спсика ["My", "favourite", "subject", "is", "programming"]
word = "-".join(lst) # получить строку из списка слов через тире
print(word) # вывод строки
Конвертация Tuple в List и обратно
Кортеж — неизменяемый тип данных, поэтому для замены одного элемента вы можете преобразовать его в список, выполнить замену и получить обратно кортеж.
tup = ("Амир", 5)
tup[1] = 4 # TypeError: 'tuple' object does not support item assignment
lst = list(tup) # конвертируем кортеж в список
lst[1] = 4 # изменение второго элемента спсика на 4
tup = tuple(lst) # конвертируем список в кортеж
print(tup) # вывод кортежа ("Амир", 4)
Конвертация List в Set и обратно
В течение года Анар побывала в столицах мира «Нур-Султан», «Москва», «Баку», «Анкара», «Москва». Сколько разных столиц посетила Анар?
capitals = ["Нур-Султан", "Москва", "Баку", "Анкара", "Москва"]
print(len(capitals)) # вывод 5
unique_capitals = set(capitals) # конвертируем список во множество
capitals = list(unique_capitals) # конвертируем множество в список
print(capitals) # вывод ["Нур-Султан", "Москва", "Баку", "Анкара"]
print(len(capitals)) # вывод 4
Конвертация Tuple в Set и обратно
capitals = ("Нур-Султан", "Москва", "Баку", "Анкара", "Москва")
print(len(capitals)) # вывод 5
unique_capitals = set(capitals) # конвертируем кортеж во множество
capitals = tuple(unique_capitals) # конвертируем множество в кортеж
print(capitals) # вывод ("Нур-Султан", "Москва", "Баку", "Анкара")
print(len(capitals)) # вывод 4
Конвертация Set в List
Мы можем преобразовать неупорядоченную структуру данных в упорядоченную и применить обработку к индексированным элементам.
capitals =
lst = list(capitals) # конвертируем множество в список
print(lst) # ["Нур-Султан", "Москва", "Баку", "Анкара"]
Вопросы:
Упражнения:
Упр. 1 Python. Коллекции. (Автор: Mr. Halil Mali - международный учитель НИШ ФМН г.Уральск)
Упр. 2 Тест. Python. Коллекции. (Автор: Mr. Halil Mali - международный учитель НИШ ФМН г.Уральск)
Задачи:
