Объясните код изучающему питон пожалуйста. - Общение Python мододелов

Вопрос Объясните код изучающему питон пожалуйста.

Регистрация
27 Мар 2013
Сообщения
78
Репутация
0
Спасибо
0
Монет
0
evens_to_50 = [i for i in range(51) if i % 2 == 0]
print evens_to_50

Этот код генерирует список из четных чисел до пятидесяти.
Но мне, как новому в программировании непонятны некоторые моменты - :

1, Почему генерация происходит в квадратных скобках, их же обычно используют при работе с индексами
2. Что делает первая i перед циклом for? Почему после range()51 нет двоеточия и перевода на новую линию с табулированием?
 
Сверху Снизу