LINUX.ORG.RU

есть ещё кортежи, сеты и хэш-таблицы нескольких видов. не надо проводить параллели, поведение вполне конкретное и от названия не зависит

anonymous
()

По сути список в Python = массив в JS

зависит от интерпретатора обоих «языков», как там сделано так и есть

конкретизируй задачу, или ты потеоритизировать в вечер пятничной-среды пришел?

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

missxu
()

мимопроходящий непрограммист

А еще в JS это некоторые называют объектом. У JS с терминологией проблемы.

Я как-то привык оперировать понятиями из С-подобных языков. Где массив - это

int array[10];
а список это, если я правильно помню плюсы, как-то так
struct List {
    int val;
    List * next;
};
a = new List;

А интерпретации в питоне и в JS - по мне так все это массивы. К ним можно, в общем случае, обращаться и как стильно-модно-моложежно array.item, так и по класике массивов array['item'].

l0stparadise ★★★★★
()
Ответ на: комментарий от l0stparadise

а список это, если я правильно помню

Это односвязный список.

RazrFalcon ★★★★★
()
Ответ на: комментарий от l0stparadise

int array[10];
по класике

array['item']

Yasno

anonymous
()

Оооой, дэтышкии.. во веремена моей молодусти онож как було.. аррэй это когда в памяти кусок, а линкед лист это когда прых-прых по памяти. Окей?

Deleted
()

Это зависит от принятой в языке терминологии. Часто под списком понимают односвязный список с O(n) random access, а под массивом — структуру, элементы которой расположены в памяти последовательно с O(1) random access.

theNamelessOne ★★★★★
()

В скриптопараше поди и то и это вообще через хешмапы реализовано.

vazgen05 ★★★
()
Ответ на: комментарий от anonymous

по сути получается, что арэи типизирован, а список хранит всё что в него сунешь

Да, только арэи не в самом питоне, а сбоку.

madcore ★★★★★
()
Ответ на: комментарий от madcore

ну так ничего доставлять не нужно, в builtin нет, но простого импорта достаточно

anonymous
()
Ответ на: комментарий от l0stparadise

А еще в JS это некоторые называют объектом

Так там всё на ассоциативных массивах и они могут обладать поведением, т.е. вполне себе объекты.

WitcherGeralt ★★
()

Понятие массив шире, а список — его подмножество. Если конкретно в питоне и жопоскрипте, то да, list примерно равен Array.

А лучше вики почитай, там всё есть: https://ru.wikipedia.org/wiki/Массив_(программирование)

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от WitcherGeralt

Понятие массив шире, а список — его подмножество.

Но ведь это вопрос терминологии в контектсте конкретного языка.

docpro
()
Ответ на: комментарий от anonymous

Если пикча призвана опровергнуть сказанное мной, то ты, видимо, меня не понял.

WitcherGeralt ★★
()

Отличия понятий «список» и «массив»?

в общем случае, массив хранит порядок элементов, список хранит только состав как множество и может вернуть в любом другом порядке

anonymous
()
Ответ на: комментарий от WitcherGeralt

Понятие массив шире, а список — его подмножество

Нет. В массиве нельзя вставить элемент без перезаписи хвоста массива.

monk ★★★★★
()
Ответ на: комментарий от anonymous

список хранит только состав как множество и может вернуть в любом другом порядке

Откуда такие странные сведения? Список всегда упорядочен.

monk ★★★★★
()
Ответ на: комментарий от monk

Омг, где, когда, какая вставка? Массив это общее понятие для структурированного набора данных, они разные бывают. Хз про какой именно ты язык, но я говорю о понятии вне рамок конкретного языка.

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от WitcherGeralt

Массив это общее понятие для структурированного набора данных, они разные бывают. Хз про какой именно ты язык, но я говорю о понятии вне рамок конкретного языка.

По твоей же ссылке:

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

Под массив выделяется непрерывный блок памяти

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

monk ★★★★★
()
Последнее исправление: monk (всего исправлений: 1)
Ответ на: комментарий от monk

В статье рассматривается именно array, т.е. индексный массив (там даже перенаправление такое есть), но упоминается и разреженный массив и ассоциативный.

Таким образом в русском языке массив это больше чем просто array. Очень часто встречал использование слова «массив» в качестве обобщающего термина для структурированных наборов данных, сам так его использую и не вижу смысла исключать из этого множества список.

WitcherGeralt ★★
()

У слова «список» нет однозначной трактовки. Массив это последовательная область в памяти, в которой лежат элементы одинакового размера.

Legioner ★★★★★
()
Ответ на: комментарий от anonymous

в общем случае, массив хранит порядок элементов, список хранит только состав как множество и может вернуть в любом другом порядке

в общем случае это утверждение чцшь, так как этот анонимус путает список (list) и множество (set).

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

Если конкретно, то массивы в JavaScript являются списками, хоть и называются массивами в документации. При обращении к элементами по индексу их можно считать массивами, а при обращении другим способом - списками. То есть, толкование зависит от контекста. Обращение по индексу - массив, не по индексу - не массив.

Пример

var x = [];//объявляем массив, первоначально пустой

x.push ('a');//обращение как к списку - добавляем элемент

var y = x[0];//обращение как к массиву - получаем элемент по индексу

var z = x.shift();//обращение как списку, он становится пустым.

Итак, один и тот же объект можно считать массивом или списком в зависимости от использования. То же относится и к Python, но не ко всем языкам.

Partisan ★★★★
()
Ответ на: комментарий от Partisan

ты в js можешь сделать и так x[x.length] = 'a'

anonymous
()
Ответ на: комментарий от WitcherGeralt

упоминается и разреженный массив и ассоциативный.

При любом варианте подразумевается, что есть произвольный доступ с константной вычислительной сложностью. Структура у которой a[0] получается в 1000 раз быстрее, чем a[1000] массивом быть не может.

monk ★★★★★
()
Ответ на: комментарий от Partisan

то массивы в JavaScript являются списками, хоть и называются массивами в документации

Нет. Они являются вполне массивами с точки зрения вычислительной сложности.

Вот если время выполнения x начнёт зависеть от i, а время выполнения x.shift() и x.unshift() перестанет зависеть от размера массива, то они будут списками.

monk ★★★★★
()
Ответ на: комментарий от anonymous

не надо проводить параллели, поведение вполне конкретное и от названия не зависит

this. so many times this.

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

MyTrooName ★★★★★
()
Ответ на: комментарий от WitcherGeralt

про array, а не про «массив» в широком смысле

ОК. Какие структуры данных, имеющие в русском названии слово «массив» не имеют этой черты?

P.S. Сам нашёл только понятие «массив данных на ленточном носителе», но это не структура данных

monk ★★★★★
()
Ответ на: комментарий от monk

Есть четыре высоких человека с голубыми глазами. У трёх из них русые волосы и документальное подтверждение, что они этнические скандинавы. У четвёртого документального подтверждения нет и вообще он блондин, очевидно, он не скандинав.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

«Скандинав» описывает не фенотип, а происхождение. «Массив» описывает категорию структур данных. Список массивом никто кроме Вас не называет (или приведите любой пример из литературы).

monk ★★★★★
()

тут выше написали, что в яваскрипте массив - это лишь ассоциативный масств, где ключи - целые числа > 0

(dev)  sergey@sergey-pc  ~  python
Python 3.7.1 (default, Oct 30 2018, 23:45:48) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a=[1,2,3]
>>> del a[1]
>>> a
[1, 3]
>>>
(dev)  sergey@sergey-pc  ~  node
> a=[1,2,3]
[ 1, 2, 3 ]
> delete a[1]
true
> a
[ 1, <1 empty item>, 3 ]
> 

tz4678 ★★
()

Отличия понятий список и массив подобны отличиям понятий байт и октет - они могут быть, а могут не быть.

Посмотри в яве - там есть Array, List и ArrayList.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.