#31. Кортежи (tuple) и их методы | Python для начинающих

  Рет қаралды 44,496

selfedu

selfedu

Күн бұрын

Пікірлер: 51
@tbassir9076
@tbassir9076 Жыл бұрын
Как всегда всё великолепно!!! 👍👍👍👍👍 Хочу добавить от себя, что уметь так объяснять это не каждому дано!
@MISTolOZZYamegaru
@MISTolOZZYamegaru 3 ай бұрын
Сергей, Ваши уроки очень высокого уровня! Буду Вас рекомендовать начинающим.
@selfedu_rus
@selfedu_rus 3 жыл бұрын
В предыдущей версии видео было некорректно сказано, что элемент добавляется в пустой кортеж оператором +. Это, конечно же, не так, данный оператор объединяет два кортежа и возвращает новый. Всем спасибо за замечания!
@olegkomlev
@olegkomlev 2 жыл бұрын
Скорее уж кортеж задают не круглые скобки, а запятая (перечисление через запятую при отсутствии квадратных или фигурных скобок). Поэтому просто заключить число в скобки недостаточно, нужно поставить запятую, чтобы это стал кортеж. А скобки ( ) нужны ,чтобы элементы кортежа не перепутались с остальной частью выражения. В некоторых случаях их можно не ставить: a=1,2 # кортеж (1,2) b=5, # кортеж из одного элемента (5,) a=(5,), # кортеж, содержащий кортеж из одного элемента Можно в консоли набрать 1,2,3 нажать Enter - увидим, что создался кортеж (1,2,3) А пустой кортеж без скобок не создать: c= # ошибка c=, # ошибка c=() # пустой кортеж Так что чаще всего скобки нужны.
@fufail
@fufail Жыл бұрын
Блин. Какой приятный голос. И рассказывает дохотчиво. Спасибо!
@andredru4278
@andredru4278 9 ай бұрын
Спасибо. Интересно изменение внутренностей кортежа.
@friend1cat
@friend1cat 3 жыл бұрын
Спасибо, Сергей!
@Юлия-ч9с6й
@Юлия-ч9с6й 2 жыл бұрын
Очень интересно и подробно. Спасибо!
@dimk7983
@dimk7983 3 жыл бұрын
Спасибо, полезно очень.
@thebaingames5636
@thebaingames5636 Жыл бұрын
Спасибо большое за курс по python, я стану лучше.
@ОлегД-е5э
@ОлегД-е5э Жыл бұрын
Альтернативный взгляд на природу Кортежей и их назначение. 1. Разделяю то мнение, что Кортежи - это единственная в языке Python Статически типизированная коллекция объектов, или группа объектов (к изменяемым/неизменяемым типам данных Статическая типизация никакого отношения не имеет, это все о другом). 2. Если упрощенно, то Статическая типизация - это когда при инициализации объекта (Кортежа) происходит: 1) фиксация типа данных (строка, число, список и т. д.), размещаемых в каждом из полей кортежа; 2) фиксация порядка следования полей кортежа с соответствующими типами данных. 3. После инициализации кортежа не могут быть изменены: 1) ни порядок следования полей с данными; 2) ни тип данных в любом из полей. Все. 4. Именно Статическая типизация Кортежей самым логическим образом объясняет все, казалось бы «экзотические», свойства Кортежей, снимает кажущиеся противоречия изменяемые данные в неизменяемом объекте, и устанавливает над Кортежами допустимый набор методов (операций). 5. Только на основе Кортежей можно построить уникальную, для языка Python, конструкцию - набор Неизменяемых данных произвольного уровня вложения (такая конструкция - это набор вложенных друг в друга кортежей, все поля которых заполнены типами данных «число», «строка» или «булевы данные». 6. Только наличие в языке программирования Кортежей позволяет реализовать следующие механизмы: а) метод создания копии объекта изменяемого типа данных с произвольным количеством уровней вложений; б) механизм бесконфликтной передачи данных от объектов с изменяемым типом данных; в) и, собственно, создание многоуровневых вложенных конструкций с полностью неизменяемыми наборами данных (вложенные Кортежи, ключи для Словарей). Экономия памяти и увеличение скорости работы с кортежами - это все побочный результат Статистической типизации. В заключении. Наличие Именованных Кортежей позволяет построить конструкции из п.1)-п.3) для Словарей. Было бы очень хорошо, если бы Сергей нашел возможность или с помощью видео, или через ссылку, разъяснил механизм работы Именованных кортежей. Поскольку, в других источниках информации - полная неразбериха.
@sega6574
@sega6574 3 жыл бұрын
спасибо дружище, все как обычно круто объясняешь))
@dmitryzagorevskiy507
@dmitryzagorevskiy507 3 жыл бұрын
Сергей, спасибо за видео! Я бы ещё уточнил, что кортеж не может быть ключом словаря, если хотя бы один из элементов (на любом уровне вложенности) этого кортежа изменяемый тип (например список). Или я опять был не очень внимателен. В целом вы делаете очень хорошие видео с очень понятными объяснениями.
@selfedu_rus
@selfedu_rus 3 жыл бұрын
Да, спасибо! Нет, этого не говорил. Пусть эта инфа останется в вашем комменте ) В принципе, очевидная вещь.
@ОлегД-е5э
@ОлегД-е5э 2 жыл бұрын
Дмитрий, очень глубокий и крайне полезный комментарий!!! И не соглашусь с Сергеем; то, о чем Вы пишите, вещь совсем не очевидная и обязательно должна быть четко обозначена в видео про кортежи, и не только здесь. На самом деле проблема в отсутствие полного и корректного определения Неизменяемости. Я просмотрел Лутца (5-е издание), на странице 134 такого определения нет! В корректном и полном определении Неизменяемости необходимо явным образом указать на : 1) связь между возможностью изменения элементов объекта и неизменностью ссылки (присваивания) на сам объект; 2) для составного объекта обязательным условием Неизменяемости является условие неизменяемости каждого!!! из его составных компонентов. Тогда мы приходим к пониманию, что числа и строки - это всегда Неизменяемые объекты, списки и словари - всегда Изменяемые, а кортеж - отдельный вид объектов, он может быть как Неизменяемым, так и Изменяемым объектом, и это все зависит от типа Неизменяемости каждого из его элементов "... на любом уровне вложенности". Для тех, у кого Python, первый язык программирования, это будет неочевидно. И получится, как с неправильно сросшимся переломом - сначала неправильно срастили, а потом надо ломать, чтобы срастить заново правильно! Как будто нельзя было сделать правильно с первого раза.
@dmitryzagorevskiy507
@dmitryzagorevskiy507 2 жыл бұрын
@@ОлегД-е5эОлег, вы предложили очень хорошее определение. Я бы рекомендовал сделать его отдельным комментарием, это будет достаточно полезно для других пользователей.
@nataljamasharskih1514
@nataljamasharskih1514 2 жыл бұрын
Спасибо, очень понятно объясняете.
@daryap2439
@daryap2439 2 жыл бұрын
Очень крутой урок! Спасибо!
@СергейСмирнов-ь8у
@СергейСмирнов-ь8у 3 жыл бұрын
Спасибо!👍
@gayratsaidakhmedov5451
@gayratsaidakhmedov5451 11 ай бұрын
спасибо
@jamjam3337
@jamjam3337 Жыл бұрын
спасибо!👏👍
@nik01aich
@nik01aich 2 жыл бұрын
Нужно еще бы объяснить почему меняется ссылка на Bool, но не меняется для списка. Потому что Bool, как и Int, Float и т.д. неизменяемые типы и при "изменениии" создается новый объект, а как следствие меняется ссылка
@AndrewMakarskiy
@AndrewMakarskiy 11 ай бұрын
Учитель от бога. Отличные материалы для самостоятельного изучения! Только вот английский надо подтянуть, Сергей. Не тапл (tuple) а тьюпл, не кей (key) а ки и т.д.
@ЗаурФазулджанов
@ЗаурФазулджанов 7 ай бұрын
голос приятный
@Mika-yq5nr
@Mika-yq5nr 10 ай бұрын
2 года прошло, но в 16:45. Что если при добавлении в список элементов, произойдет перевыделение памяти для списка в другом участке памяти?
@selfedu_rus
@selfedu_rus 10 ай бұрын
не понял вопроса, но думаю, его лучше в ТГ-канал по Python задать
@light8032
@light8032 10 ай бұрын
При создании списка (как и для vector в c++) выделяется память больше необходимого, чтобы при добавлении новых элементов перевыделение памяти под них происходило реже. Но все-таки в случае переполнения памяти под список - память должна расширяться. В лучшем случае, если в том же месте, после списка, остался неиспользованный участок памяти, память под список расширяется на месте, т.е. ссылка на список не меняется. В худшем случае, программа должна найти свободный участок памяти, удовлетворяющий необходимым нам размерам списка и перезаписать список уже в тот участок. В этом случае ссылка списка изменится. Так, я по крайней мере знаю, может и ошибаюсь, устроено в C++ с vector и другими коллекциями и string. Меня интересует, если ссылки в кортеже не меняются, то как он будет реагировать на переполнение (и на возможно следствии изменения ссылки) одного из его изменяемых элементов. Весь кортеж перезапишется? Вопрос не из-за "блеснуть умом", а потому, что я сначала подумал, что любой кортеж можно использовать как ключ в словаре. Но в комментариях прочитал, что кортежи, к-ые содержат изменяемые элементы, не могут быть ключами. В любом случае, спасибо за обратную связь
@ostrov11
@ostrov11 3 жыл бұрын
пайтон это просто
@Kvas00k
@Kvas00k 7 ай бұрын
Не подскажите как ввести с Клавиатуры кортеж содержащий несколько числовых кортежей, через какую функцию ! Все беребрал не получается😢
@selfedu_rus
@selfedu_rus 7 ай бұрын
в ТГ-канале по Python спросите, вам там кучу вариантов накидают )
@ibrahimoglu
@ibrahimoglu 3 жыл бұрын
👍
@dubinin_s
@dubinin_s 3 жыл бұрын
Подскажите, tuple.index(значение[, start[, stop]]) - start и stop в квадратных скобках - это такой метод записи необязательных параметров в документации? Я правильно понимаю, что если параметры отделяются квадратными скобками, то тот, который внутри скобок, необязателен после указания параметра, который вне скобок? И, соответственно, если где-то встретится такое - (значение[, start, stop]), это будет означать, что start и stop не обязательны, но если указал start, то будь добр укажи и stop, иначе шайтан интерпретатор будет сильно ругаться?
@selfedu_rus
@selfedu_rus 3 жыл бұрын
да, верно
@dubinin_s
@dubinin_s 3 жыл бұрын
@@selfedu_rus спасибо
@Youtubbber
@Youtubbber Жыл бұрын
Если указать Старт, то указывать Стоп не обязательно.
@lopytga
@lopytga 5 ай бұрын
Нормально питончик места кушает в оперативе
@dubinin_s
@dubinin_s 3 жыл бұрын
А ещё не известна примерная дата появления практических заданий?
@selfedu_rus
@selfedu_rus 3 жыл бұрын
где-то через неделю
@SuperPrimus
@SuperPrimus 3 жыл бұрын
Не пойму один момент. Кортеж - это неизменяемый тип. Но конструкция a = a + (1, ) говорит о том, что кортеж "a" все же можно менять, раз мы добавили в него элемент. И если кортеж "a" будет использоваться как ключ словаря, то операция a = a + (1, ) изменит этот ключ .Поясните мне, где я заблуждаюсь
@selfedu_rus
@selfedu_rus 3 жыл бұрын
конструкция a = a + (1, ) создает новый кортеж с доплнительным элементом 1, прежний будет удален сборщиком мусора
@SuperPrimus
@SuperPrimus 3 жыл бұрын
@@selfedu_rus Спасибо за оперативный ответ. Только я не понял, что будет с кортежем-ключом словаря, если сборщик мусора его удалит после создания нового кортежа.
@selfedu_rus
@selfedu_rus 3 жыл бұрын
@@SuperPrimus если прежний кортеж используется, то не удалится
@SuperPrimus
@SuperPrimus 3 жыл бұрын
@@selfedu_rus но мы потеряем ссылку на прежний кортеж, переопределив переменную "а"
@selfedu_rus
@selfedu_rus 3 жыл бұрын
@@SuperPrimus останется ссылка от ключа словаря - это тоже ссылка на этот же (прежний) кортеж
@locky1827
@locky1827 Жыл бұрын
У меня [1, 2, 3] равен 72 байта
@susenya
@susenya 10 ай бұрын
в видео версия пайтона 3.9.5
@1усфа
@1усфа Жыл бұрын
а для чего нам кортеж из одного только элемента
@ОлегАлексеев-н3м
@ОлегАлексеев-н3м 7 ай бұрын
Ненавижу python console
@elenalevasheva3830
@elenalevasheva3830 Жыл бұрын
Спасибо за урок, очень интересно и полезно
I tricked MrBeast into giving me his channel
00:58
Jesser
Рет қаралды 30 МЛН
The Singing Challenge #joker #Harriet Quinn
00:35
佐助与鸣人
Рет қаралды 32 МЛН
Human vs Jet Engine
00:19
MrBeast
Рет қаралды 199 МЛН
風船をキャッチしろ!🎈 Balloon catch Challenges
00:57
はじめしゃちょー(hajime)
Рет қаралды 53 МЛН
Список и кортеж
37:46
Python Russian
Рет қаралды 5 М.
Python VS С# | Согласен / Не согласен
14:27
Технологии в Контуре
Рет қаралды 61 М.
Python для начинающих. Урок 13 | Кортежи
20:30
Иван Викторович
Рет қаралды 12 М.
Python lists, sets, and tuples explained 🍍
15:06
Bro Code
Рет қаралды 304 М.
Уроки Python - Типы данных, переменные
9:07
Web Developer Blog
Рет қаралды 53 М.
Python функции. Создание функций, области видимости, аргументы, return
34:10
WebDev с нуля. Канал Алекса Лущенко
Рет қаралды 9 М.
I tricked MrBeast into giving me his channel
00:58
Jesser
Рет қаралды 30 МЛН