Что значит [obj for object, ...]?

from collections import Counter

def frequency_sort(items):
    # your code here
    result = [obj for objects, c in Counter(items).most_common() for obj in [objects] * c]
    return result

Объясните работу result, а конкретно [obj for object, что значит данное выражение.

Спасибо!


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

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

эта конструкция называется list comprehension

ваша конструкция result = [obj for objects, c in Counter(items).most_common() for obj in [objects] * c] аналогична следующей по семантике:

from collections import Counter

result = []
for objects, c in Counter(items).most_common():
    for obj in [objects] * c:
        result.append(obj)

следует иметь ввиду, что списковые включения в большинстве случаев работают гораздо быстрее самописных циклов из-за внутренних оптимизаций

→ Ссылка