извлечение всех элементов из списка списков однострочником (без использования модулей)

У меня есть список списков:

arr = [[1, 2], [3, 4], [1, 4]]

Необходимо получить все элементы (числа) из данной конструкции

реализовал в лоб:

res = []
for obj in arr:
    res += [elem for elem in obj]

но хочется однострочного решения

подскажите его можно стандартными средствами (без дополнительных библиотек) реализовать?

перебрал несколько вариантов, пока ничего не нашел :(

P.S.

нашел такой изврат (но это все таки богомерзкий изврат, а не красивое решение):

res = list(map(int, ' '.join(f"{obj[0]} {obj[1]}" for obj in arr).split()))

Ответы (1 шт):

Автор решения: MaxU

Воспользуйтесь параметром sum(..., start=[]):

res = sum(arr, [])

результат:

In [4]: res
Out[4]: [1, 2, 3, 4, 1, 4]

Но наиболее идиоматичным решением в данном случае будет использование itertools.chain. Об этом даже есть упоминание в docstring по встроенной функции sum():

To concatenate a series of iterables, consider using itertools.chain().

from itertools import chain

res = list(chain.from_iterable(arr))

UPDATE: сравнение скорости выполнения разных решений:

In [9]: %timeit sum([list(range(1000))]*1000, [])
2.25 s ± 69.3 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

In [10]: %timeit [x for xs in [list(range(1000))]*1000 for x in xs]
27.9 ms ± 428 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

In [11]: %timeit list(chain.from_iterable([list(range(1000))]*1000))
11.8 ms ± 266 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
→ Ссылка