Рубрики
Без рубрики

Эквивалены в Python и JavaScript. Бонус

Время от времени я Google для правильного синтаксиса, как обрабатывать списки и словари в Python или … Tagged с основами, промежуточным, JavaScript, Python.

Эквиваленты в Python и JavaScript (5 части серии)

Время от времени я Google для правильного синтаксиса, как обработать списки и словари в Python или массивах и объектах в JavaScript. Поэтому я решил расширить мою серию эквивалентов с этими функциями. В конце концов, это я тоже, кто будет использовать информацию, которую я предоставляю здесь.

Все правдивые элементы

Иногда нам нужно проверить из списка условий, если все они верны или из списка элементов, если все они не пусты.

Это можно проверить со следующим в Питон :

items = [1, 2, 3]
all_truthy = all(items)
# True

А вот эквивалент в JavaScript :

items = [1, 2, 3];
all_truthy = items.every(Boolean);
// true

Любые правдивые элементы

Аналогично, мы можем проверить, является ли хотя бы одно из условий true, или есть хотя бы один непустой элемент в списке.

Это Python Мы сделаем это с:

items = [0, 1, 2, 3]
some_truthy = any(items)
# True

И в JavaScript Мы проверим это так:

items = [0, 1, 2, 3];
some_truthy = items.some(Boolean);
// true

Итерации через каждый элемент и его индекс

Вот пример того, как перейти через список предметов, а также проверять их индексы в Питон . Это полезно для разных консольных выходов при создании различных инструментов командной строки, которые обрабатывают данные:

items = ['a', 'b', 'c', 'd']
for index, element in enumerate(items):
    print(f'{index}: {element};')

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

items = ['a', 'b', 'c', 'd'];
items.forEach(function(element, index) {
    console.log(`${index}: ${element};`);
});

Элементы карты к результатам функции

Для обработки всех элементов списка вы можете либо использовать их с помощью для Структура и создайте новый список с модификациями, или вы можете сделать это за один шаг, отображая элементы списка в функцию модификации. В Python Это можно сделать с карта () Функция:

items = [0, 1, 2, 3]
all_doubled = list(map(lambda x: 2 * x, items))
# [0, 2, 4, 6]

В JavaScript карта () это метод массива:

items = [0, 1, 2, 3];
all_doubled = items.map(x => 2 * x);
// [0, 2, 4, 6]

Фильтрующие элементы функцией

Когда вам нужно искать некоторые элементы в списке или массива и хотите избежать для Петли, вы можете использовать функциональность фильтрации. В Python Это выполняется с Фильтр () Функция, которая принимает функцию фильтрации и список и возвращает новый фильтрованный список.

items = [0, 1, 2, 3]
only_even = list(filter(lambda x: x % 2 == 0, items))
# [0, 2]

В JavaScript Есть Фильтр () метод массива для этого.

items = [0, 1, 2, 3];
only_even = items.filter(x => x % 2 === 0);
// [0, 2]

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

Уменьшить элементы функцией в одно значение

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

В Python Есть Уменьшить () функция для этого.

from functools import reduce
items = [1, 2, 3, 4]
total = reduce(lambda total, current: total + current, items)
# 10

В JavaScript Есть Уменьшить () Способ массива.

items = [1, 2, 3, 4];
total = items.reduce((total, current) => total + current);
// 10

Словари слияния

Существуют несколько способов объединения словари в Python или объекты в JavaScript. Но это, вероятно, самые простые.

В Питон Он разлагается словари к коргам ключей и массивов, присоединяясь к ним и создавая новый словарь.

d1 = {'a': 'A', 'b': 'B'}
d2 = {'a': 'AAA', 'c': 'CCC'}
merged = dict(list(d1.items()) + list(d2.items()))
# {'a': 'AAA', 'b': 'B', 'c': 'CCC'}

Аналогично, в JavaScript Он распространяет два объекта в новый объект:

d1 = {a: 'A', b: 'B'}
d2 = {a: 'AAA', c: 'CCC'}
merged = {...d1, ...d2};
// {a: 'AAA', b: 'B', c: 'CCC'}

Вынос

  • На обоих языках вы можете пройти через списки элементов без явного увеличения и ссылки на индекс.
  • Для обработки списка элементов вам не обязательно нужен цикл. Выделенные методы или функции все ()/каждый () , любой ()/некоторые () , карта () , Фильтр () и Уменьшить () там, чтобы помочь вам.
  • На обоих языках вы можете объединить несколько словарей в один. Если в нескольких словарях появится один и тот же ключ, последний будет использоваться в объединенном словаре.

Конечно, я также обновил чит-лист с полным списком эквивалентов в Питон и JavaScript Что вы видели здесь описано. Этот чит-лист помогает мне с хорошим обзором рядом с моим ноутбуком, поэтому я считаю, что вам тоже будет полезно. Новый ревизию 10 с подсветкой синтаксиса, поэтому он делает его еще лучше исследовать и понимать.

Используйте это для хорошего!

Обложка Фото Даррен Чан Отказ

Эквиваленты в Python и JavaScript (5 части серии)

Оригинал: “https://dev.to/djangotricks/equivalents-in-python-and-javascript-bonus-56g0”