1 平方列表
如果你想创建一个包含1到10的平方的列表,你可以这样做:
squares = []
for x in range(10):
squares.append(x**2)
这是一个简单的例子,但是使用列表生成式可以更简洁地创建这个列表。
squares = [x**2 for x in range(10)]
这个最简单的列表生成式由方括号开始,方括号内部先是一个表达式,其后跟着一个for语句。列表生成式总是返回一个列表。
2 整除3的数字列表
通常,你可能这样写:
numbers = []
for x in range(100):
if x % 3 == 0:
numbers.append(x)
你可以在列表生成式里包含一个if语句,来有条件地为列表添加项。为了创建一个包含0到100间能被3整除的数字列表,可以使用列表推导式:
numbers = [x for x in range(100) if x % 3 == 0]
3 找出质数
这通常要使用好几行代码来实现。
noprimes = []
for i in range(2, 8):
for j in range(i*2, 50, i):
noprimes.append(j)
primes = []
for x in range(2, 50):
if x not in noprimes:
primes.append(x)
不过,你可以使用两个列表生成式来简化代码。
noprimes = [j for i in range(2, 8) fo