Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
Заблокирован

Что такое tuple?

11.09.2020, 08:18. Показов 1738. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите пожалуйста как преподаватели обьясняют значение слова tuple?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.09.2020, 08:18
Ответы с готовыми решениями:

List и Tuple, что когда использовать?
Я так понимаю, что tuple этот тот же list, только без возможности добавления элементов. Таким образом везде можно использовать только...

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое IIS и что такое PWS? Почему одно без другого не работает?
вот уже второй день пытаюсь немного разобраться в АСП. накидал небольшую тестовую страничку. но с серверами я ничего не понимаю! что...

36
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
11.09.2020, 08:22
Первая строка поисковика:
Кортеж — упорядоченный набор фиксированной длины.
0
Заблокирован
11.09.2020, 08:28  [ТС]
Спасибо, а для таких как я, есть обьяснение?
0
1 / 1 / 0
Регистрация: 24.11.2019
Сообщений: 22
11.09.2020, 09:12
tuple - это неизменяемый список другими словами. Защита от дурака, если сказать проще. Его нельзя изменить как намеренно, так и случайно. Есть один полезный сайт для справки, там можно много чего узнать для себя https://pythonworld.ru.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
11.09.2020, 09:35
Du raker, вот самый полезный-преполезный сайт по питону, все остальные просто отдыхают
https://docs.python.org/3/libr... uple#tuple
всегда начинай оттуда, если нет под рукой годной книги
0
Эксперт Python
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
11.09.2020, 09:50
Был бы с русским, цены бы не было...
0
Эксперт Python
 Аватар для dondublon
4651 / 2071 / 366
Регистрация: 17.03.2012
Сообщений: 10,180
Записей в блоге: 6
11.09.2020, 11:43
Следущий вопрос - зачем нужен tuple. Там не защита от дурака важна, на самом деле. Составители языков таким не занимаются.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
11.09.2020, 12:52
Цитата Сообщение от Du raker Посмотреть сообщение
как преподаватели обьясняют значение слова tuple?
Кортеж.
Уроки математики посещал? Кортеж это N-ка, понятие из математики (многие математические объекты формально определяются как кортежи), если ты его не слышал - возникают вопросы, что ты вообще делал в школе....
0
Заблокирован
11.09.2020, 16:33  [ТС]
Garry Galler, когда я учился в школе никаких кортежей не было. Учился я плохо, но дураком меня не считали.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
11.09.2020, 16:47
Цитата Сообщение от Du raker Посмотреть сообщение
в школе никаких кортежей не было
Вообще-то были. Ты просто забыл. Если не кортеж, то n-ка.
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
11.09.2020, 17:58
Du raker, Кортеж, это последовательность элементов, которые как и в списке размещаются в нем с фиксированным смещением. То есть каждый элемент кортежа имеет строго определенное смещение (индекс). При этом кортеж, в отличие от списков является неизменяемым объектом. В нем нельзя добавлять или удалять элементы, а так же заменять элементы на другие, хотя и не изменяя длины кортежа. Нельзя менять элементы местами, поэтому нельзя применять сортировку.
Поэтому определение
Цитата Сообщение от DmFat Посмотреть сообщение
Кортеж — упорядоченный набор фиксированной длины.
не совсем верно. Если мы в математике заменим элемент кортежа другим элементом, по кортеж останется той же длины, но такая операция для кортежа не допустима.
При этом, эта неизменяемость специфична. Неизменяемость существует только на первом уровне. Однако при этом элементами кортежа могут быть изменяемые объекты. Из-за этого возникают некоторые нюансы, которые не сразу бросаются в глаза.
Python
1
2
3
4
5
6
7
8
9
>>> L = [1, 2, 3,]
>>> T = (L, [4, 5, 6], 7)
>>> T
([1, 2, 3], [4, 5, 6], 7)
>>> L.append(8)
>>> L
[1, 2, 3, 8]
>>> T
([1, 2, 3, 8], [4, 5, 6], 7)
Из примера мы видим, что кортеж хранит ссылку на список L , а не сам список [1, 2, 3].
Кортежи представляют собой массивы ссылок на объекты.
Подобно спискам кортежи лучше всего представлять себе как массивы ссылок на объекты; кортежи хранят точки доступа к другим объектам (ссылки).
Python
1
2
3
4
5
6
7
8
>>> a = (3, 2, 1)
>>> b = (1, 2, 3)
>>> a == b
False
>>> a + b
(3, 2, 1, 1, 2, 3)
>>> b * 3
(1, 2, 3, 1, 2, 3, 1, 2, 3)
При копировании кортежа содержащего неизменяемые объекты получаем ссылку на тот же самый кортеж.
При копировании кортежа содержащего изменяемые объекты получаем новый кортеж.
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
>>> t = (5, 6, 7)
>>> t1 = tuple(t)
>>> t1
(5, 6, 7)
>>> t1 is t
True
>>> t2 = t[:]
>>> t2
(5, 6, 7)
>>> t2 is t
True
>>> t = (5, 6, 7)
>>> L = [1, 2, 3]
>>> t1 = [5, 6, L]
>>> t1
[5, 6, [1, 2, 3]]
>>> L1 = L[:]
>>> t2 = (5, 6, L1)
>>> t2
(5, 6, [1, 2, 3])
>>> t1 is t2
False
>>> t3 = t1[:]
>>> t3 is t1
False
>>> t1
[5, 6, [1, 2, 3]]
>>> t4 = t1[:]
>>> t4
[5, 6, [1, 2, 3]]
>>> t4 is t1
False

Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
>>> X, Y = Y, X  # Меняет содержимое в переменных X и Y, но не меняет содержимое в кортежах
 
>>> X
'spam'
>>> Y
'eggs'
>>> Q1 = (X, Y)
>>> Q2 = (Y, X)
>>> (X, Y) = (Y, X)
>>> X
'eggs'
>>> Y
'spam'
>>> Q1
('spam', 'eggs')
 
>>> X = 'spam'
>>> Y = 'eggs'
>>> X, Y = Y, X
>>> X
'eggs'
>>> Y
'spam'
>>> (X, Y) = (Y, X)
>>> X
'spam'
>>> Y
'eggs'
>>> Q1 = (X, Y)
>>> Q2 = (Y, X)
>>> Q1 = Q2
>>> X
'spam'
>>> Y
'eggs'
>>> (X, Y) = (Y, X)
>>> Q1
('eggs', 'spam')
>>> X
'eggs'
>>> Y
'spam'
>>> (X, Y) = (Y, X)
>>> Q1
('eggs', 'spam')
>>> Q2
('eggs', 'spam')
>>> X
'spam'
>>> Y
'eggs'
0
5514 / 2867 / 571
Регистрация: 07.11.2019
Сообщений: 4,752
11.09.2020, 19:33
Garry Galler, у нас тоже в школе ни кортежей, ни n-ок не было.. Самое близкое по смыслу к кортежам это были вектора.
В каком классе (и годах) Вы изучали кортежи в школе?
0
11.09.2020, 22:44

Не по теме:

Цитата Сообщение от u235 Посмотреть сообщение
в школе ни кортежей, ни n-ок не было..
Никто не читал Виленкина (известнейший советский автор)? В его учебниках для 9-11 классов, в разделе комбинаторика вводится понятие кортежей.

0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.09.2020, 22:58
Цитата Сообщение от DmFat Посмотреть сообщение
Кортеж — упорядоченный набор фиксированной длины.
Разве упорядоченный?

Добавлено через 3 минуты
Цитата Сообщение от u235 Посмотреть сообщение
Garry Galler, у нас тоже в школе ни кортежей, ни n-ок не было.. Самое близкое по смыслу к кортежам это были вектора.
В каком классе (и годах) Вы изучали кортежи в школе?
Кортеж это аналог обычного массив в С/С++ (нельзя изменить размер, добавить/удалить новые элементы)
Список это аналог вектора (std::vector) (можно изменить, добавить/удалить новые элементы)

Вся разница в том что список резервирует память(выделяет с запасом), а кортеж нет.
Т.е. список более прожорлив и в ряде определенны случаев может снижать эффективность программ.
0
5514 / 2867 / 571
Регистрация: 07.11.2019
Сообщений: 4,752
11.09.2020, 23:34

Не по теме:

Garry Galler, хм.. погуглил, везде пишут что-то типа такого: Учебник для 9 класса с углубленным изучением математики, т.е. это для специальных математических школ больше..

Avazart, конечно упорядоченный, есть первый элемент, второй и т.д. в отличие от множества можно обратиться по индексу.
0
Почетный модератор
 Аватар для ildwine
6201 / 2955 / 1300
Регистрация: 04.03.2013
Сообщений: 5,796
Записей в блоге: 1
12.09.2020, 00:56
Цитата Сообщение от Avazart Посмотреть сообщение
Кортеж это аналог обычного массив в С/С++ (нельзя изменить размер, добавить/удалить новые элементы)
Ещё нельзя изменять элементы, обращаясь по индексу, а в массиве С/С++ можно. Да и в списке можно.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
12.09.2020, 02:07
Цитата Сообщение от Avazart Посмотреть сообщение
Разве упорядоченный?
Цитата Сообщение от u235 Посмотреть сообщение
конечно упорядоченный
Тут надо определиться с понятиями :-)
В С++, например, set (обычный) упорядоченный, и это означает, что все элементы (независимо от изначальной позиции) сортируются по возрастанию (а все потому что set здесь на красно-черном дереве основан).
А в Python set это просто множество без соблюдения порядка вставки и без гарантированной сортировки (числа сортируются, но это просто побочный эффект оставшийся от dict, на котором питоновский set основан).
А вот кортежи в Python такого побочного эффекта не имеют. Поэтому они просто соблюдают порядок изначальной вставки как и список, потому что индексируемые.
В С++ же кортежи другие и оператор квадратные скобки для них не работает (хотя индексация все-таки есть).
Да и значения тут менять разрешено.
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
12.09.2020, 04:22
Цитата Сообщение от Avazart Посмотреть сообщение
Разве упорядоченный?
Под упорядоченным понимается, что каждый элемент имеет свое конкретное место (смещение или по другому индекс), в отличие от множеств, где за элементами не закреплено конкретное место. Поэтому множество не является последовательностью и оно не упорядочено. Список так же является упорядоченной последовательностью. Но в списке, в отличие от кортежей, мы можем принудительно менять этот порядок. В кортеже менять порядок нельзя, это так же связано с тем, что кортеж является неизменяемым объектом. В множестве же порядка нет, там за элементами не закреплены конкретные места, и они могут располагаться в множестве каждый раз в произвольных местах.

Добавлено через 2 минуты
Я как всегда отвечаю на комментарий, не посмотрев комментарии ниже. Народ до меня уже объяснил, почему кортеж является упорядоченным.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
12.09.2020, 08:53
Цитата Сообщение от Viktorrus Посмотреть сообщение
Я как всегда...
Да ничего. Как говорится - "Повторенье - мать ученья"
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
12.09.2020, 11:32
Цитата Сообщение от Garry Galler Посмотреть сообщение
Тут надо определиться с понятиями :-)
Ну в этом и вопрос.

Добавлено через 1 минуту
Цитата Сообщение от Garry Galler Посмотреть сообщение
А в Python set это просто множество без соблюдения порядка вставки и без гарантированной сортировки (числа сортируются, но это просто побочный эффект оставшийся от dict, на котором питоновский set основан).
Вообще то set и dict это хеш таблицы аналоги std::unordered_set std::unordered_map.
Т.е. там расположение по хешу.

Добавлено через 1 минуту
Цитата Сообщение от ildwine Посмотреть сообщение
Ещё нельзя изменять элементы,
Это уже чисто питоновские особенности.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.09.2020, 11:32
Помогаю со студенческими работами здесь

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое напряжение и что такое сила тока с позиции заряженных частиц
Объясните пожалуйста, что такое напряжение и что такое сила тока с позиции заряженных частиц. Например, имеется проводник в цепи, чем...

Что такое монитор и что такое мьютекс? Это же разные вещи?
Здравствуйте. В разных айти-статьях по-разному используют эти термины, причём часто их путают друг с другом. Хотелось бы, чтобы кто-нибудь...

SFML - ошибка "std::tuple<sf::RenderWindow>::tuple: ни одна из 2 перегрузок не может преобразовать все типы аргументов"
Хотел создать поток, передаю в функцию переменную window, где хранится игровое окно. При компиляции выдаёт такую ошибку. Открыл файл с...

Объект TDictionary. Что такое ключ и что такое значение?
Из прочитанного в гугле понял что это нечто наподобие какого-то словаря: Коллекция пар ключ-значение. и что работать будет только на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru