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

Как удалить элемент из кортежа python

  • автор:

Списки и кортежи в Python для начинающих

Предположим, что вы составляете список гостей на свадьбу. Этот список постоянно меняется: добавились друзья семьи Дима и Света, не смогут прийти троюродные сестры со стороны жены Лида с Наташей.

Для представления таких данных из реального мира в Python отлично подходят списки. Списки — это еще один встроенный тип данных Python.

Создать, или другими словами, объявить список в Python можно двумя способами, так:

my_list = list()
my_list = []

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

guests = ['Родители', 'Одноклассники', 'Лида и Наташа']
print(guests)

Операции с элементами списка ¶

В нашем списке три элемента: «Родители», «Одноклассники», «Лида и Наташа», — которые хранятся внутри списка именно в таком порядке. Если только вы не измените порядок списка, «Родители» всегда будет первым элементом, «Одноклассники» — вторым и «Лида и Наташа» — третьим. Родители представляет собой начало списка, а Лида и Наташа — конец. Мы помним, что Лида и Наташа не смогут прийти, и их нужно удалить из списка.

С помощью метода remove можно удалить последний элемент в списке.

guests = ['Родители', 'Одноклассники', 'Лида и Наташа']
print(guests) # ['Родители', 'Одноклассники', 'Лида и Наташа']
guests.remove("Лида и Наташа")
print(guests) # ['Родители', 'Одноклассники', 'Лида и Наташа']

Но не забываем, нужно еще добавить в список двух гостей. Добавление новых элементов в конец списка происходит при помощи метода append .

guests = ['Родители', 'Одноклассники', 'Лида и Наташа']
print(guests) # ['Родители', 'Одноклассники', 'Лида и Наташа']
guests.remove("Лида и Наташа")
print(guests) # ['Родители', 'Одноклассники']
guests.append('Дима')
guests.append('Света')
print(guests) # ['Родители', 'Одноклассники', 'Дима', 'Света']

В список можно не только добавить элемент, но и изменить одно из его значений на другое, согласно индексу элемента.

guests = ['Родители', 'Одноклассники', 'Дима', 'Света']
print(guests) # ['Родители', 'Одноклассники', 'Лида и Наташа']
guests[2] = 'Коллеги'
print(guests) # ['Родители', 'Одноклассники', 'Коллеги', 'Света']

И так, список — это контейнер, хранящий объекты в определенном порядке. Обратите внимание, что в отличие от строк, методы списка меняют исходный список. Есть однако у списков кое‑что общее со строками. Это доступ к элементу по индексу и срезы. Все это работает в списках точно так же, как и в строках.

guests = ['Родители', 'Одноклассники', 'Дима', 'Света']
print(guests[0]) # Родители
print(guests[-1]) # Света
print(guests[:2]) # ['Родители', 'Одноклассники']

Кортежи ¶

Кортежи — это контейнеры, хранящие объекты в определенном порядке. В отличие от списков, кортежи неизменяемы.

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

Для создания кортежей также используют один из двух вариантов синтаксиса. Первый:

my_tuple = tuple()
my_tuple = ()

Чтобы добавить в кортеж новые объекты, создайте его вторым способом, указав через запятую каждый желаемый элемент.

data = ('И. Иванов', 1958, True)
print(data) # ('И. Иванов', 1958, True)

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

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

books = ("1984", "О дивный новый мир", "451 градус по Фаренгейту")
print(books[2]) # 451 градус по Фаренгейту

Ключевое слово in / not in ¶

Проверить, содержится ли элемент в кортеже, можно с помощью ключевого слова in .

books = ("1984", "О дивный новый мир", "451 градус по Фаренгейту")
print("1984" in books) # True
print("Незнайка на луне" in books) # False

Поместите перед in ключевое слово not для проверки отсутствия элемента в кортеже.

books = ("1984", "О дивный новый мир", "451 градус по Фаренгейту")
print("Незнайка на луне" not in books) # True

Те же операции с ключевыми словами in и not in сработают и со списками.

Сложение кортежей и списков ¶

При помощи оператора сложения можно соединять друг с другом две одинаковые структуры данных. Пример ниже со списками также будет работать и с кортежами:

colors1 = ["синий", "зеленый", "желтый"]
colors2 = ["оранжевый", "розовый", "черный"]
print(colors1 + colors2) # ['синий', 'зеленый', 'желтый', 'оранжевый', 'розовый', 'черный']

На данном этапе вам может стать интересно, зачем использовать структуры данных, которые кажутся менее гибкими, чем списки? На самом же деле, кортежи удобны, когда вы имеете дело со значениями, которые никогда не изменятся. Примером таких данных для кортежа могут быть географические координаты. Долготу и широту города следует сохранить в кортеже, поскольку эти значения никогда не изменятся, а сохранение в кортеже будет гарантировать, что другие части программы случайно их не изменят.

Итерирование ¶

Строки, списки и кортежи поддерживают итерирование (программа может их перебирать, значение за значением), то есть к каждому их элементу можно получить доступ через цикл — такие объекты называются итерируемыми. Каждый элемент в итерируемом объекте, как мы уже знаем, имеет свой порядковый индекс.

В следующем примере элемент Москва записан в списке с индексом 0, Хельсинки с индексом 1, а ‘Анкара’ с индексом 2.

cities = ['Москва', 'Хельсинки' ,'Анкара']
for city in cities:
print(city)
# Москва
# Хельсинки
# Анкара

Вот мы и познакомились с оператором for — циклом, перебирающим итерируемый объект. Цикл for можно использовать, чтобы определять инструкции, которые будут выполняться один раз для каждого элемента в итерируемом объекте, и с помощью таких инструкций вы можете получать доступ ко всем этим элементам и осуществлять операции с ними.

Например, с помощью цикла for , выполняющего перебор списка строк, и метода upper можно сделать символы каждой строки прописными:

cities = ['Москва', 'Хельсинки' ,'Анкара']
for city in cities:
print(city.upper())
# МОСКВА
# ХЕЛЬСИНКИ
# АНКАРА

Как показано в примерах выше, цикл for определяется синтаксисом: for имя_переменной in имя_итерируемого_объекта: где имя_переменной — выбранное вами имя переменной, в которую каждую итерацию цикла будет записываться очередное значение из итерируемого объекта.

Python с нуля. Освойте с Виртуальным ИИ-помощником!

Кортежи (Tuple)

Кортеж Python используется для хранения последовательности неизменяемых объектов Python. Кортеж похож на списки (List), поскольку значение элементов, хранящихся в списке, может быть изменено, в то время как кортеж неизменяем, и значение элементов, хранящихся в кортеже, не может быть изменено.

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

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

T1 = (101, "Peter", 22) T2 = ("Apple", "Banana", "Orange") T3 = 10,20,30,40,50 print(type(T1)) print(type(T2)) print(type(T3)) 

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

Пустой кортеж может быть создан следующим образом.

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

tup1 = ("JavaTpoint") print(type(tup1)) #Creating a tuple with single element tup2 = ("JavaTpoint",) print(type(tup2)) 

Кортеж индексируется так же, как и списки. Доступ к элементам кортежа можно получить, используя их конкретное значение индекса.

tuple1 = (10, 20, 30, 40, 50, 60) print(tuple1) count = 0 for i in tuple1: print("tuple1[%d] = %d"%(count, i)) count = count+1 
(10, 20, 30, 40, 50, 60) tuple1[0] = 10 tuple1[1] = 20 tuple1[2] = 30 tuple1[3] = 40 tuple1[4] = 50 tuple1[5] = 60 
tuple1 = tuple(input("Enter the tuple elements . ")) print(tuple1) count = 0 for i in tuple1: print("tuple1[%d] = %s"%(count, i)) count = count+1 
Enter the tuple elements . 123456 ('1', '2', '3', '4', '5', '6') tuple1[0] = 1 tuple1[1] = 2 tuple1[2] = 3 tuple1[3] = 4 tuple1[4] = 5 tuple1[5] = 6 

Индексирование и нарезка в кортеже Python

Индексация и нарезка в кортеже аналогичны спискам. Индексация в кортеже начинается с 0 и продолжается до length(tuple) — 1 .

Доступ к элементам кортежа можно получить с помощью оператора index [] . Python также позволяет использовать оператор двоеточия для доступа к нескольким элементам в кортеже.

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

Индексирование и нарезка в кортеже Python

Рассмотрим следующий пример:

tup = (1,2,3,4,5,6,7) print(tup[0]) print(tup[1]) print(tup[2]) # It will give the IndexError print(tup[8]) 
1 2 3 tuple index out of range 

В приведенном выше коде кортеж имеет 7 элементов, которые обозначают от 0 до 6. Мы попытались получить доступ к элементу вне кортежа, что вызвало ошибку IndexError .

tuple = (1,2,3,4,5,6,7) #element 1 to end print(tuple[1:]) #element 0 to 3 element print(tuple[:4]) #element 1 to 4 element print(tuple[1:5]) # element 0 to 6 and take step of 2 print(tuple[0:6:2]) 
(2, 3, 4, 5, 6, 7) (1, 2, 3, 4) (1, 2, 3, 4) (1, 3, 5) 

Отрицательная индексация в кортеже (Tuple) Python

Доступ к элементу кортежа также может осуществляться с помощью отрицательной индексации. Индекс -1 обозначает самый правый элемент, -2 — второй последний элемент и так далее.

Элементы слева направо обходятся с использованием отрицательной индексации. Рассмотрим следующий пример:

tuple1 = (1, 2, 3, 4, 5) print(tuple1[-1]) print(tuple1[-4]) print(tuple1[-3:-1]) print(tuple1[:-1]) print(tuple1[-2:]) 
5 2 (3, 4) (1, 2, 3, 4) (4, 5) 

Удаление кортежа (Tuple) в Python

В отличие от списков, элементы кортежа не могут быть удалены с помощью ключевого слова del , поскольку кортежи неизменяемы. Чтобы удалить весь кортеж, мы можем использовать ключевое слово del вместе с именем кортежа.

Рассмотрим следующий пример.

tuple1 = (1, 2, 3, 4, 5, 6) print(tuple1) del tuple1[0] print(tuple1) del tuple1 print(tuple1) 
(1, 2, 3, 4, 5, 6) Traceback (most recent call last): File "tuple.py", line 4, in print(tuple1) NameError: name 'tuple1' is not defined 

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

Такие операторы, как конкатенация ( + ), повторение ( * ), вхождения ( in ) работают так же, как и со списком. Для более детального рассмотрения рассмотрим следующую таблицу.

Допустим, объявлены кортеж t = (1, 2, 3, 4, 5) и кортеж t1 = (6, 7, 8, 9) .

Оператор Описание
* Оператор повторения позволяет повторять элементы кортежа несколько раз.
+ Конкатенирует кортеж, упомянутый по обе стороны от оператора.
in Возвращает true, если определенный элемент существует в кортеже, иначе false
for in Цикл for используется для итерации по элементам кортежа.

Встроенные функции Python Tuple

Функция Описание
cmp(tuple1, tuple2) Сравнивает два кортежа и возвращает true, если кортеж1 больше кортежа2, иначе false.
len(tuple) Вычисляет длину кортежа.
max(tuple) Возвращает максимальный элемент кортежа
min(tuple) Возвращает минимальный элемент кортежа.
tuple(seq) Преобразует указанную последовательность в кортеж.

Где используется кортеж (Tuple)?

Использование кортежа вместо списка используется в следующем сценарии.

  1. Использование кортежа вместо списка дает нам четкое представление о том, что данные кортежа являются постоянными и не подлежат изменению.
  2. Кортеж может имитировать словарь без ключей. Обратите внимание на следующую вложенную структуру, которую можно использовать в качестве словаря.
[(101, "John", 22), (102, "Mike", 28), (103, "Dustin", 30)] 

Отличие кортежа (Tuple) от списка (List)

Список (List) Кортеж (Tuple)
Синтаксис списка обозначается символом [] . Синтаксис кортежа обозначается знаком ()
Список является изменяемым. Кортеж является неизменяемым.
Список имеет переменную длину. Кортеж имеет фиксированную длину.
Список обеспечивает большую функциональность, чем кортеж. Кортеж обеспечивает меньшую функциональность, чем список.
Список используется в сценарии, в котором нам нужно хранить простые коллекции без ограничений, где значение элементов может быть изменено. Кортеж используется в случаях, когда нам нужно хранить коллекции только для чтения, т.е. значение элементов не может быть изменено. Его можно использовать в качестве ключа внутри словаря.
Списки занимают больше памяти, чем кортежи. Кортежи более эффективны с точки зрения использования памяти благодаря своей неизменяемости.

Кортеж в Python

Сегодня мы говорим о другом встроенном в Python типе данных – Tuples. Кортеж в Python используется для хранения нескольких элементов в упорядоченном и неизменяемом виде.

Если вам нужно, чтобы данные можно было изменять, вам нужен список в Python. Теперь, без дальнейших задержек, перейдем непосредственно к нашему типу данных Tuple.

Синтаксис и примеры

Кортежи в Python обозначаются простыми скобками. Вот пример определения кортежа:

SampleTuple = ("Element1", "Element2", "Element3")

Вот еще несколько примеров определений кортежей:

#an empty tuple emptyTup=() #tuple of integers intTup=(1,2,3,4,5)

Наконец, вам не нужно придерживаться одного типа данных при добавлении элементов в кортежи:

#Tuples with multiple datatypes multiTuple = ("This is a string", 1, True) print(multiTuple)

Если вы запустите приведенный выше код, у вас не возникнет проблем с получением выходного кортежа:

('This is a string', 1, True)

Доступ к значению в кортеже

Вы можете получить доступ к кортежам с помощью индексов. Индекс первого элемента равен 0, а последний элемент имеет индекс n-1.

#tuple of string strTup=('This','is','a','tuple') #accessing first element print(strTup[0]) #accessing second element print(strTup[1]) #accessing fourth element print(strTup[3])

Результат приведенного выше кода будет таким, как показано ниже:

Пример кортежа в python

Кортежи также поддерживают отрицательную индексацию, когда последний элемент кортежа имеет индекс -1.

#tuple of string strTup=('This','is','a','tuple') #accessing first element from the right print(strTup[-1]) #accessing second element from the right print(strTup[-2]) #accessing second element from the right print(strTup[-4])

Результат будет таким, как показано ниже.

Доступ к значению с отрицательным индексом, пример вывода

Обновление и удаление элементов

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

Точно так же удаление отдельных элементов невозможно, но с помощью ключевого слова del вы можете удалить кортеж из своей программы.

#tuple 1 tup1=(1,2,3) #tuple 2 tup2=(4,5) #tuple 3 tup3=tup1+tup2 print(tup3) #to delete tuple 1 del tup1 #this will show a traceback as tup1 is deleted. So it is not defined now print(tup1)

Приведенный выше код даст вам результат, как показано на скриншоте здесь:

Обновление кортежа и удаление примера вывода

Некоторые из встроенных функций

Кортежи предлагают множество встроенных функций, которые сокращают количество требуемых строк кода. Давайте посмотрим на некоторые функции, предлагаемые кортежами.

#a string tuple tup=('this','is','a','tuple') #len(tuple) gives total length of a tuple print(len(tup)) #max(tuple) gives maximum element of a tuple print(max(tup)) #min(tuple) gives minimum element of a tuple print(min(tup)) #count(x) gives number of occurances of x in the tuple print(tup.count('is')) #index(x) gives index of first occurances of x in the tuple print(tup.index('a'))

Вы должны получить следующий результат, если запустите приведенный выше код.

Как можно удалить элемент из кортежа в Python?

Если вы попытаетесь удалить элемент кортежа, вы получите ошибку TypeError.

Однако, если вы хотите создать новый кортеж, который не содержит определенный элемент, вы можете использовать срезы (slicing) для создания нового кортежа без этого элемента. Например:

my_tuple = (1, 2, 3, 4, 5) new_tuple = my_tuple[:2] + my_tuple[3:] print(new_tuple) # Выведет (1, 2, 4, 5)

Здесь мы создаем новый кортеж new_tuple, который содержит первые два элемента старого кортежа (my_tuple[:2]) и все элементы старого кортежа, начиная с четвертого (my_tuple[3:]). Таким образом, мы исключаем третий элемент из нового кортежа.

Обратите внимание, что мы не можем изменять исходный кортеж my_tuple, поэтому мы создаем новый кортеж new_tuple, который содержит нужные элементы.

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

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