Эквиваленты в 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”