print l2#<generator object <genexpr> at 0x052DAA08>
l2.next()#0
l2.next()#1
l2.next()#2
字典推导式:
字典推导式和列表推导式使用方法类似
创建形式:
变量={ 键:值 for 变量 in 可迭代对象 if 布尔表达式}
键值:可以是表达式,也可以是一个函数(有返回值的函数)
d={str(i):i**2 for i in range(10) if i%3==0}
d#{'9': 81, '0': 0, '3': 9, '6': 36}
#给定一个字典d1={'one':1,'two':2,'three':3}请转换字典中的键与值
d1 #{1: 'one', 2: 'two', 3: 'three'}
for i in d1.iteritems():
#iteritems()返回键值对 ,如果直接在d1中可迭代,只是返回键。
print i#返回('three', 3) ('two', 2) ('one', 1)
for key,value in d1.iteritems():
print key,value#返回 three 3 two 2 one 1
d1={value:key for key,value in d1.iteritems()}
print d1#{1: 'one', 2: 'two', 3: 'three'}
集合推导式
定义形式:
变量={ 表达式 for 变量 in 可迭代对象 if 布尔表达式}
表达式:可以是普通表达式,也可以是一个函数(带有返回值的函数)
s={ i for i in range(10)if i%2==0}
print s#set([0, 8, 2, 4, 6])