от
Во многих местах,
(1,2,3)
(кортеж) и
[1,2,3]
(список) могут быть взаимозаменяемыми. Когда я должен использовать один или другой, и почему?

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.

16 Ответы

0 голосов
от
Во многих местах,
(1,2,3)
(кортеж) и
[1,2,3]
(список) могут быть взаимозаменяемыми. Когда я должен использовать один или другой, и почему?
0 голосов
от
Из питона часто задаваемые вопросы: Списки и кортежи, в то время как подобный во многих отношениях, обычно используются в принципиально разных способа. Кортежи могут рассматриваться как аналогичные записей Паскаля или C структуры; они маленькие коллекции связанных данных, которые могут быть разных типов, которые эксплуатируются в качестве группы. Например, в декартовых координатах надлежащим образом представлен как кортеж из двух или трех чисел. Списки, с другой стороны, больше похожи на массивы в других языках. Они, как правило, имеют различное количество объектов, которые имеют одинаковый тип и которые эксплуатируются на один-на-один. Вообще по Конвенции вы не выбрали список или кортеж, основываясь только на своей (им)переменчивости. Вы бы выбрать Кортеж для небольшой коллекции абсолютно разные куски данных, в котором полномасштабный класса будет тоже супертяж, и список для коллекции любого разумного размера, где вы однородного набора данных.
0 голосов
от
Список
[1,2,3]
динамичный и гибкий, но эта гибкость приходит со скоростью затрат. Кортеж
(1,2,3)
является фиксированным (неизменным), и, следовательно, быстрее.
0 голосов
от
Кортежи являются быстрый\гибкий способ создания составных типов данных. Списки являются контейнерами для, ну, списки объектов. Например, можно использовать список, чтобы хранить список студентов в классе. Каждому студенту деталь в этом списке может быть 3-кортеж, содержащий их номер в списке, имя и тестовый балл.
`[(1,'Mark',86),(2,'John',34)...]`
Кроме того, поскольку кортежи являются неизменными, они могут использоваться в качестве ключей в словарях.
0 голосов
от
Понятие кортежи являются весьма выразительным: Прагматично, они прекрасно подходят для упаковки и распаковки значений (
x,y=coord
). В сочетании с словари (хэш-таблицы), они позволяют формах сопоставления, которые в противном случае требуют многих уровнях ассоциации. Например, рассмотрим маркировку, что (х,г) был найден.
// PHP
if (!isset($found[$x])) {
    $found[$x] = Array();
    $found[$x][$y] = true;
} else if (!isset($found[$x][$y])) {
    $found[$x][$y] = true;
}

# Python
found[(x,y)] = True # parens added for clarity
Списки должны быть использованы с расчетом операции на его содержимом (отсюда и различные упоминания о неизменяемости). Один будет хотеть поп, толчок, соединить, нарезать, поиск, вставить до, вставить после, и т. д. Со списком. Кортежи должны быть низкоуровневым представлением объекта, где простые сравнения или операции, такие как извлечение элемента из n-й или n элементов в предсказуемым образом, например, координаты были даны ранее. Наконец, списки не hashable, поэтому тип отображения выполнена с словари (хэш-таблицы в Perl, ассоциативные массивы в PHP) должны быть сделаны с кортежами. Вот простой пример, кортежи и словари, наконец-то вместе:
"""
couple is a tuple of two people
doesLike is a dictionary mapping couples to True or False
"""
couple = "john", "jane"
doesLike = dict()
doesLike[couple] = True
doesLike["jane", "john"] = False # unrequited love :'(
0 голосов
от
[1, 2, 3]
-это список в который можно добавить или удалить элементы.
(1, 2, 3)
Кортеж, в котором после определения, изменение не может быть сделано.
0 голосов
от
Всякий раз, когда мне нужно передать в коллекции элементов функция, если я хочу, чтобы функция, чтобы не изменить значения в - я использую кортежей. Еще, если я хочу иметь функцию для изменения значений, я использую список. Всегда при использовании внешних библиотек и нужно передать список значений в функцию и не уверены в целостности данных, использовать кортеж.
0 голосов
от
Как уже говорилось, списки и кортежи являются контейнеры, которые можно использовать для хранения объектов Python. Списки могут быть расширены и их содержание может меняться по назначению, с другой стороны кортежи являются неизменяемыми. Кроме того, списки не могут быть использованы в качестве ключей в словаре, в то время как кортежи могут.
0 голосов
от
откройте консоль и запускать Python. Попробуйте это:
0 голосов
от
Кортеж может представлять ключ в словаре, потому что это неизменяемыми. Используйте списки, если у вас есть набор данных, которые не нужен произвольный доступ.
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...