where
идут промежуточные выражения. a `div` b
- тоже самое, что div a b
). [3, 5..a `div` 2]
- генерирует список [3, 5, 7, 9...]
и т. д. до a `div` 2
(\c -> (c, a - c))
- это лямбда, возвращает кортеж.const arr = [1, 2, 9, 12, 1, 24, 1, 9];
const result = arr.reduce((acc, v) => ({...acc, [v]: (acc[v] || 0) + 1}), {});
// nullable может быть String или null
final String? nullable = "value";
// Если в nullable будет null - присвоит
// переменной nonNullable1 значение "default"
final String nonNullable1 = nullable ?? "default";
// Вызовет ошибку времени выполнения,
// если в nullable будет null
final String nonNullable2 = nullable!;
def count_even_odd(n):
# на случай, если изначально n - отрицательное число
n = abs(n)
# если n чётное - последняя цифра тоже чётная
result = (1, 0) if n % 2 == 0 else (0, 1)
# если n сотоит из одной цифры - прерываем рекурсию
if n < 10:
return result
# иначе - отрезаем от n последнюю цифру,
# вызываем функцию рекурсивно и суммируем результат
return tuple(map(sum, zip(count_even_odd(n // 10), result)))
id, name = map(list, zip([1837769803, 'Tt'], [1837765893, 'Tp'], [1837765803, 'ot'], [1837465803, 'g']))
print(id, name)
-resize width height
Resize the source to a rectangle with size width x height. If either (but not both) of the width or height parameters is 0, the value will be calculated preserving the aspect-ratio.