For…in Loops: переключение между Javascript и Python.
Если вы дошли до того, что вам нужно делать Javascript в дополнение к Python или Python в дополнение к Javascript, добро пожаловать в современное программирование. Это порядок дня!
Вы едва ли сможете выжить, используя только один язык, поскольку фреймворки разрастаются, а технологическая экосистема все больше и больше пересекается. Границы между бэкендом, фронтендом и мобильными устройствами продолжают стираться. Так что все в порядке, если вы комбинируете Python и Javascript. Однако, если вы новичок в этой комбинации, следует отметить некоторые тонкие различия, иначе жизнь может превратиться в ад.
А пока давайте посмотрим на for...in
петли.
for...in
петля, эквивалентная foreach...in
на других языках — это отличный способ перебора каждого элемента в последовательности элементов.
Он доступен в Javascript и Python и может показаться похожим в том, как он реализован… но! он ведет себя по-разному для каждого языка.
Давайте переберем последовательность названий чисел на обоих языках и отобразим их одно за другим.
Питон 3.х
# Python Code
>>> numbers = ['one', 'two', 'three', 'four']
>>> for number in numbers:
... print(number)
one
two
three
four
Python выводит каждый элемент списка. Это делает for...in
очень круто.
Давайте посмотрим на Javascript
Javascript
// Javascript Code
> var numbers = ['one', 'two', 'three', 'four'];
> for (var number in numbers){
... console.log(number);
...}
0
1
2
3
Ну вот! Что-то другое! Javascript отображает индексы (или индексы) элементов, а не сами элементы, как мы видели с python.
Если мы действительно хотим получить значения в Javascript, нам нужно добавить дополнительный код. Мы будем использовать индексы для получения элементов и немного изменим код для удобства чтения:
// Javascript Code
> var numbers = ['one', 'two', 'three', 'four'];
> for (var index in numbers){
... console.log(numbers[index]);
...}
one
two
three
four
Вот так!
Конечно, если вы переходите с Python на Javascript, обратите внимание, что нам нужно объявлять переменные с такими ключевыми словами, как var, let, const
в зависимости от версии и настроек области видимости. Мы также должны использовать {..}
для блоков и добавить ;
(точка с запятой) до конца логических строк.
И если вы переходите с Javascript на Python, попрощайтесь с такими ключевыми словами, как var, let, const
. Чтобы объявить переменную, вам нужно только имя и его значение. Блоки форматируются с помощью отступов, с использованием табуляции или пробелов — не того и другого, и рекомендуемых пробелов… и… Блоки также начинаются с логических строк, заканчивающихся на :
(двоеточие).
Это была просто суть….
Вернуться к коду!
Возможно, вы уже задавались вопросом, что делать, если вам нужны индексы списка в python, а не сами элементы.
Ну и для этого тоже есть что. Это называется enumerate()
. Давайте использовать это:
# Python Code
>>> numbers = ['one', 'two', 'three', 'four']
>>>
>>> for index, number in enumerate(numbers):
... print(index)
0
1
2
3
Ну вот! enumerate()
Функция принимает список элементов и нумерует их. Затем он возвращает элементы и их индексы в виде пар; первый из пары является индексом элемента, а второй — самим элементом. Читать далее здесь.
Определенно, вы можете получить то, что достигается каждым языком с помощью for...in
по-разному.
Когда используешь
for...in
в Javascript по умолчанию возвращается индекс каждого элемента, за исключением пар ключ-значение (объекты javascript).Когда используешь
for...in
в Python поведение по умолчанию заключается в том, что возвращается сам элемент, за исключением пар ключ-значение… И это для другого поста.Вы можете добавить дополнительный код, чтобы добиться чего-то другого для каждого языка.
Всегда помните, они могут казаться похожими, но они не равны.
… И следите за продолжением… есть еще итерации для изучения for...in
.