使用[ ]生成list
基本表达式: expr for value in collection if condition 其中if条件可以没有。
#0-9的平方,输出为列表
list1=[x**2 for x in range(10)]#range(10)是0-9
print(list1)
#结果为[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
使用for循环完成
#0-9的平方,输出为列表
list1=[]
for i in range(10):
list1.append(i**2)
print(list1)
#结果为[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
可以看出使用列表推导式用更少代码来实现同样的操作!
函数的调用联合使用
def f1(x):
return x**2
a = [f1(i) for i in range(10) ]
print (a)
# 结果为: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
在看一个列子:用1 2 3 4这4个数可以组成多少个三位数,分别是多少?
#用1 2 3 4这4个数可以组成多少个互不相同且无重复的三位数,分别是多少?
list1=[100*x+10*y+z for x in range(1,5) for y in range(x,5) for z in range(1,5) if x!=y and y!=z and x!=z]
print(list1)
#结果为[123, 124, 132, 134, 142, 143, 231, 234, 241, 243, 341, 342]
#推导式中可以有多个for