Обновить

В PEP 798 предлагается расширить возможности коллекций (списки, словари, множества) и генераторов, разрешив операции распаковки (* и **) внутри выражения.

Способ позволит лаконично в одну строку объединять произвольное количество итерируемых объектов в одну коллекцию:

[*it for it in its]  # список с объединением итерируемых элементов в 'its'
{*it for it in its}  # множество с объединением итерируемых элементов в 'its'
{**d for d in dicts} # словарь с комбинацией словарей в 'dicts'
(*it for it in its)  # генератор с объединением итерируемых элементов в 'its'

В данный момент объединение списков мы осуществляем с помощью циклов:

# с помощью генератора
its = [[1, 2], [3, 4], [5]]
new_list = [x for it in its for x in it]

# с помощью метода extend
new_list = []
for it in its:
    new_list.extend(it)

# для множеств и словарей с помощью метода update
new_set = set()
for it in its:
    new_set.update(it)

new_dict = {}
for d in dicts:
    new_dict.update(d)

# также возможно использовать генераторную функцию (yield)
def new_generator():
  for it in its:
      yield from it

Предложение распространяется также на асинхронные выражения.

В данный момент предложение находится на стадии черновика.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии2

«Яндекс» сообщил о «затронувшем инфраструктуру» инциденте в дата-центре в Сасово

В дата‑центре «Яндекса» в Сасово «произошёл инцидент», затронувший часть инфраструктуры, сообщили СМИ в компании. Сейчас ситуация на площадке находится под контролем, пострадавших нет. Команда устраняет последствия происшествия и восстанавливает работу затронутых сервисов, добавили в «Яндекса». Также в «Яндексе» официально обратились к пользователям и партнёрам по поводу инцидентов с дата‑центрами компании.

«Яндекс» сообщил о «затронувшем инфраструктуру» инциденте в дата-центре в Сасово

Публикации