как развернуть сокращённую запись комманд на Python

есть вот такой код на питоне

dict = defaultdict(set)

idx = 'one'
val = 'первый'
dict[idx].add(val)
idx = 'two'
val = 'второй'
dict[idx].add(val)
idx = 'three'
val = 'третий'
dict[idx].add(val)
val = 'четвёртый'
dict[idx].add(val)
idx = 'four'
val = 'пятый'
dict[idx].add(val)
idx = 'five'
val = 'шестой'
dict[idx].add(val)
val = 'седьмой'
dict[idx].add(val)
idx = 'six'
val = 'восьмой'
dict[idx].add(val)

n = sum((len(val) > 1) for idx, val in dict.items())

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


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

Автор решения: n1tr0xs
  1. Инициализируем нашу переменную
n = 0
  1. Переписываем наш итератор:
for idx, val in dict.items():
  1. Переписываем тело цикла:
n += len(val)>1
  1. Соединяем
n = 0
for idx, val in dict.items():
    n += len(val)>1

Дополнение:

  1. Вместо idx, val in dict.items() тут следует написать val in dict.values()
  2. Не стоит называть переменные зарезервированными словами (dict, list, set, ...)
→ Ссылка