列表生成式是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
正则提取信息
正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同;但不用担心,不被支持的语法通常是不常用的部分。