Стандартная структура данных для хранения нескольких элементов в
определённом порядке в Python называется списком (list
), в JavaScript
называется массивом (Array
).
Python | Javascript |
---|---|
Создание списка / массива # | |
[3, 2, 10, 'Hello'] |
[ 3, 2, 10, 'Hello' ] |
Создание списка / массива с помощью конструктора # | |
['H', 'e', 'l', 'l', 'o', '!'] |
[ 1, 2, 3, 'Hello' ]
[ 1, 2, 3, 'Hello' ]
[ <4 empty items> ]
[ '4' ]
[ 'Hello!' ] |
Доступ по индексу # | |
3
2
'Hello' |
3
2
Hello |
Индексы как строки # | |
Exception: TypeError list indices must be integers or slices, not str |
2 В JavaScript массивы являются частным случаем объектов, а объекты индексируются строками. Числовые индексы неявно преобразуются в строки. |
Изменение значения элемента списка / массива # | |
[100, 2, 10, 'Hello'] |
[ 100, 2, 10, 'Hello' ] |
Длина списка / массива # | |
4 |
4 |
Добавление элемента в список / массив # | |
[3, 2, 10, 'Hello', 5] |
[ 3, 2, 10, 'Hello', 5 ] |
Добавление нескольких элементов в список / массив # | |
[3, 2, 12, 20] |
[ 3, 2, 12, 20 ] |
Расширение списка / массива элементами другого списка / массива # | |
[3, 2, 10, 'Hello', 1, 2, 3] |
[ 3, 2, 10, 'Hello', 1, 2, 3 ]ссылка
[ 3, 2, 10, 'Hello', 1, 2, 3 ]ссылка
[ 3, 2, 10, 'Hello', 1, 2, 3 ]ссылка Это наиболее эффективный способ расширения списка в случае, если второй список очень большой. В отличие от остальных методов, здесь не приходится передавать все элементы второго списка в качестве аргументов функции.
[ 3, 2, 10, 'Hello', 1, 2, 3 ]ссылка требует: es6 |
Конкатенация # | |
[1, 2, 3, 'Hello', 'World'] |
[ 1, 2, 3, 'Hello', 'World' ] |
Удаление элемента массива по индексу # | |
[2, 15]
15
2 |
[ 2, <1 empty item>, 15 ]
undefined
3 См. также манипуляции с фрагментами. |
Очистить список / массив # | |
[] |
[] |
Получить элемент с индексом вне диапазона # | |
Exception: IndexError list index out of range |
undefined |
Добавить элемент вне диапазона # | |
Exception: IndexError list assignment index out of range |
[ 1, 2, 10, <2 empty items>, 100 ]
undefined
100 |
Оператор in # | |
True
True
True
False
False Оператор
True
False
False
True
False Если сделать словарь, похожий на список (с числовыми ключами),
то оператор |
true
false
false
true
true Поскольку массив в JavaScript — это частный случай объекта (то
есть штуки, похожей на словарь), |
Срезы # | |
[20, 30]
[0, 10]
[20, 30, 40, 50, 60]
[20, 30, 40]
[0, 10, 20, 30, 40, 50, 60]
[20, 40]
[40, 30] |
[ 20, 30 ]
[ 0, 10 ]
[ 20, 30, 40, 50, 60 ]
[ 20, 30, 40 ]
[ 0, 10, 20, 30, 40, 50, 60 ]ссылка Срезов с шагом (третий аргумент в Python) в JavaScript по умолчанию нет. |
Манипуляции с фрагментами # | |
[0, 10, 200, 300, 400, 40]
[0, 200, 300, 400, 40]
[0, 200, 300, 999, 400, 40] |
[ 0, 10, 200, 300, 400, 40 ]
[ 20, 30 ]
[ 0, 200, 300, 400, 40 ]
[ 0, 200, 300, 999, 400, 40 ]ссылка Метод |
В JavaScript массивы можно создавать, используя функцию
Array
(со словомnew
или без него: эффект одинаковый). Если эта функция получает в качестве аргумента одно целое число, то это число принимается за длину массива, который нужно создать, при этом создаётся массив с пустыми слотами. В иных случаях (несколько аргументов, аргумент-строка) создается массив, элементами которого являются перечисленные аргументы. Из-за непоследовательного поведения этой функции и получающихся массивов с пустыми слотами этот метод является не рекомендуемым, подробнее см. в YDKJS.