Я просто хочу использовать Javascript оператор запятой в лямбда-функции Python, и теперь я знаю, что () [- 1] мне подходит.
Оценивает каждый из его операндов (слева направо) и возвращает значение последнего операнда.
В питоне
# ignore List comprehension
# [ele['val'] for ele in arr ]
from functools import reduce
arr = [{'id': 1, 'val': 100}, {'id': 2, 'val': 200}]
#
# use tuple ()[-1] result [100, 200]
result = reduce(lambda total, ele: (total.append(ele['val']), total)[-1], arr, [])
# use list[][-1] result [100, 200]
result = reduce(lambda total, ele: [total.append(ele['val']), total][-1], arr, [])
result1 = reduce(lambda total, ele: total if total.append(ele['val']) else total, arr, [])
# [100, 200]
В Javascript:
// ignore map [{'id': 1, 'val': 100}, {'id': 2, 'val': 200}].map(e=>e.val)
[{'id': 1, 'val': 100}, {'id': 2, 'val': 200}].reduce((total, ele) => (total.push(ele.val), total), [])
// [100, 200]