列表推导式
列表推导式提供了从序列创建列表的简单途径。通常应用程序将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建子序列。
每个列表推导式都在 for 之后跟一个表达式,然后有零到多个 for 或 if 子句。返回结果是一个根据表达从其后的 for 和 if 上下文环境中生成出来的列表。如果希望表达式推导出一个元组,就必须使用括号。
这里我们将列表中每个数值乘三,获得一个新的列表:
# 列表推导式 将列表中每个数值乘三,获得一个新的列表
oldlist = [3,6,9]
newlist = [x*3 for x in oldlist]
print(newlist)
以上脚本运行结果:
现在我们玩一点小花样:
oldlist = [3,6,9]
newlist = [[x,x*3] for x in oldlist]
print(newlist)
以上脚本运行结果:
这里我们对序列里每一个元素逐个调用某方法:
#对每个元素使用某种方法
oldlist = [' shandong ',' shanshu ',' hebei ']
newlist = [x.strip() for x in oldlist]
print(newlist)
以上脚本运行结果:
我们可以用 if 子句作为过滤器:
#增加if过滤
oldlist = [3,6,9]
newlist = [x*3 for x in oldlist if x < 7]
print(newlist)
以上脚本运行结果:
以下是一些关于循环和其它技巧的演示:
#两个列表元素相乘
oldlist1 = [3,6,9]
oldlist2 = [4,7,10]
newlist1 = [x*y for x in oldlist1 for y in oldlist2 ]
print(newlist1)
newlist2 = [oldlist1[i]*oldlist2[i] for i in range(len(oldlist1))]
print(newlist2)
以上脚本运行结果:
列表推导式可以使用复杂表达式或嵌套函数:
#圆周率列表
print(355/113)
newlist = [str(round(355/113,i)) for i in range(1,10) ]
print(newlist)
以上脚本运行结果: