列表生成式
列表生成式是python内置的非常简单且强大的可以用来创建list的生成式
如果没有列表生成式,我们得用很多行的循环或者条件代码,但是如果有了列表生成式,就能节省很多码字的时间,增加代码的简洁度。
举个例子,如果我们想实现一个功能,在1到11的数字中,如果这个数是偶数,就输出x,如果是奇数,就输出负x
如果是常规的循环和条件,就是
for x in range(1,11):
if x%2==0:
print x
else:
print -x
但如果是列表生成式,我们可以写成
x if x%2==0 else -x for x in range(1,11)
这里要注意的是在for之前,必须要是一个表达式,必须能根据x计算出一个值
而如果if 在for 后面,则意味着一个筛选条件,不能加else
比如x for x in range(1,11) if x%2==0没问题,但是如果加了else就有问题了。
列表生成式可以让我们的代码简洁美观,不过也要注意if else 和for在前在后的意义有所不同,要懂得区分~