Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
А генераторы — это немного другое.
But be aware that dict comprehensions works only in Python 2.7+.
in Python 2.6 and below you can replace it with:
dict((key, value) for item in list if condition)

Вы придираетесь к слову «генератор», в данном случае «генератор списка» — это то, что создает список, не более
L = [x for x in range(1, 10)]
L = (x for x in range(1, 10))
xrange нет.items = [1,2,3,6,2,1,2,3,4,1,2,3,4]
unique = reduce(lambda stack, item: stack + [item] if not (item in stack) else stack, items, []))
#[i for i in range(1, 11) if i % 2 == 0]
list(filter((lambda x: x % 2 == 0), range(1, 11)))
range():
range(stop) -> list of integers
range(start, stop[, step]) -> list of integers
Return a list containing an arithmetic progression of integers.
range(i, j) returns [i, i+1, i+2, ..., j-1]; start (!) defaults to 0.
When step is given, it specifies the increment (or decrement).
For example, range(4) returns [0, 1, 2, 3]. The end point is omitted!
These are exactly the valid indices for a list of 4 elements.
oddlist = [ x%10 for x in range(100) if x%2 ] # 1 3 5 7 9 1 3 5 7 9 ...
emptylist = []
oddcubes = { x : x**3 for x in range(100) if x%2 }
emptydict = {}
odds = { x%10 for x in range(100) if x%2 } # 1 3 5 7 9 - дубликаты будут выкинуты
emptyset = set() # внезапно! {} это пустой словарь, а не пустое множество
Генераторы словарей