列表解析完成的功能可以使用for循环替代或者map调用来替代。对于刚开始使用Python的初学者,通常使用简单的for循环,逻辑清晰,这样会容易理解,特别是在嵌套的时候。
dex = [x ** 2 for x in range(10)]
print dex
dex1 = list(map(lambda x:x ** 2,range(10)))
print dex1
dex2 = []
for x in range(10):
dex2.append(x ** 2)
print dex2
ifdex = [x ** 2 for x in range(10) if x % 2 == 0]
print ifdex
ifdex1 = list(filter((lambda x:x % 2 == 0),map(lambda x:x ** 2,range(10))))
print ifdex1
ifdex2 = []
for x in range(10):
if x % 2 == 0:
ifdex2.append(x ** 2)
print ifdex2
dex3 = []
for x in generator(10):
dex3.append(x ** 2)
print dex3
生成器的定于如下:
def generator(N):
for i in range(10):
yield i
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__iter__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'close', 'gi_code', 'gi_frame', 'gi_running', 'next', 'send', 'throw']