Насколько мне известно, массив - это индексированная последовательность без изменения размера, обычно с однородными элементами данных, тогда как список - это упорядоченная последовательность с изменяемым размером, поддерживающая разнородные данные. Состояния вики что кортеж как структура или математическая модель - это конечный упорядоченный список (последовательность) элементов . Чем он отличается от списка или массива?

Примечание! Этот вопрос не касается реализации структуры на каком-либо языке программирования. Меня интересуют только чистые структуры данных, то есть по определению.

-1
Kaiyaha 2 Ноя 2020 в 13:16

2 ответа

Лучший ответ

Я думаю, что основное отличие, которое отделяет arrays от tuples или lists, - это contiguity в памяти и homogeneity составляющих ее элементах. С точки зрения информатики, array в основном представляет собой непрерывный фрагмент памяти, в котором хранятся объекты одинаковой природы, тогда как list и tuple могут иметь свои элементы в отдаленных карманах памяти, а также различной природы . Кроме того, кортеж применяет ordering своего элемента (подумайте о декартовых координатах (x, y)), в то время как list - это, по сути, неупорядоченный тип мультимножества!

Например, вы не можете поменять местами поля x и y координаты. Но если область на плоскости представлена ​​кучей точек, вас не волнует порядок точек. В зависимости от простоты использования traversing или searching в наборе точек вы можете использовать разные структуры данных, такие как list, set или даже tuple (скажем, порядок важен, как и обход вершин многоугольника по часовой стрелке)!

1
swag2198 2 Ноя 2020 в 10:41

Одно из основных различий между lists и tuples в python заключается в том, что tuples неизменяемы (т.е. значения, хранящиеся в них, не могут быть изменены), тогда как lists и arrays изменчивы. Это можно продемонстрировать с помощью этого фрагмента кода:

tup = ((1,2),(3,4))
tup[0][0] = 3

Выход:

TypeError: 'tuple' object does not support item assignment

Но когда то же самое делается с list:

lst = [[1,2],[3,4]]
lst[0][0] = 3

Это не вызывает ошибок.

Это основное различие между lists и tuples, но есть много других отличий, таких как производительность и потребление памяти. Вы можете обратиться к этому веб-сайту, чтобы узнать больше.

1
Sushil 2 Ноя 2020 в 10:36