В документации встретил выражение. Вот его упрощенный работающий вариант:
print ', '.join(i for i in ['1', '2'])
Не могу понять что означает i перед for. join принимает итератор. Значит то что написано в скобках после join должно возвращать итератор. При попытке присвоить это "i for i in ['1', '2']" выражение переменной возникает ошибка. Хотя, если я пробую присвоить переменной "[i for i in ['1', '2']]" или "(i for i in ['1', '2'])", то получаю в переменной итератор. Хотя эта запись мне не понятна тоже.
Получается, что в выражении не хватает скобок. Нужно писать так:
print ', '.join([i for i in ['1', '2']])
Укажите пожалуйста место в докуметации, где описывается подобный синтаксис. Интересует именно i for i in ['1', '2'].