一、列表解析
mlist = [i * 2 for i in range(5)]
lst = [i for i in range(11) if i % 2 == 0]
nlist = [[1, 2, 3], [4, 5, 6]]
#方法一
lst=[]
for item in nlist:
for i in item:
lst.append(i)
print(lst)
#方法二
lst = [i for item in nlist for i in item]
print(lst)
'''结果[1, 2, 3, 4, 5, 6]'''
二、字典解析
ndict = {x: x*2 for x in range(5)}
三、集合解析
语法 {x for x in iter}
四、生成器表达式
g = (x * 2 for x in range(5))
next(g)
for i in g:
print(i)
备注
创建字典
b = dict(name='tom',age=22)
c = dict(zip(['name','age'],['tom',22]))
f = dict([('name','age'),('tom',22),('address','beijing')])
#会生成一个value值相等的字典,注意:fromkeys()第二个参数不写时默认是None
d = dict.fromkeys(['name','age'],('tom'))
# 结果 {'name': 'tom', 'age': 'tom'}
e = dict(map(lambda x,y:(x,y),['name','age'],['tom',22]))
迭代字典
a = dict(a=1, b=2, c=3)
for k, v in a.items():
pass
for k, v in a.iteritems():
pass
for k in a.iterkeys():
print('%s,%s' % (k, a[k]))
for k in a:
print('%s,%s' % (k, a[k]))
for k, v in zip(a.iterkeys(), a.itervalues()):
print('%s,%s' % (k, v))
for v in a.itervalues():
for k in a.iterkeys():
if a[k] == v:
print('%s,%s' % (k, v))