Почему данный код не выдаёт ошибку (операторы for и if в аргументе метода)?
Здравствуйте!
Подскажите, пожалуйста, что за синтаксис используется в строчке кода: print("".join(ch for ch in guts if d[ch] == 1)),
и почему она не выдаёт исключений, хотя операторы for и if используются без двоеточий?
guts = "text"
d = {}
for ch in guts:
d[ch] = d.get(ch, 0) + 1
print("".join(ch for ch in guts if d[ch] == 1))
https://all-python.ru/osnovy/generator-spiska.html
Когда используются круглые скобки, сам массив не создается. Вместо этого создается объект-генератор, который хранит только текущий элемент и умеет находить следующий. Из минусов, мы можем пройти по такому генератору только один раз.