为了我帮助理解,菜鸟教程中的python推导式,是我看过最容易理解的方法了。这里就记录一下。
列表推导式(又称列表解析式)提供了一种简明扼要的方法来创建列表。
它的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是 0 个或多个 for 或者 if 语句。那个表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表,在这个以 if 和 for 语句为上下文的表达式运行完成之后产生。
列表推导式的执行顺序:各语句之间是嵌套关系,左边第二个语句是最外层,依次往右进一层,左边第一条语句是最后一层。
a = [x*y for x in range(1,5) if x > 2 for y in range(1,4) if y < 3]
他们的执行顺序是:
a = []
for x in range(1,5)
if x > 2
for y in range(1,4)
if y < 3
a.append( x*y)
看下面的例子:
li = [random.randint(0, 10000) for i in range(1000)] # 使用列表推导式得出一个1000个数的列表
执行的顺序是:
li = []
for i in range(1000):
li.append(random.randint(0, 10000))
这样理解起来就好很多了~~~
参考:
菜鸟教程