1)list complrehensions是快速创建遵循简单规则内容的列表的有用方式
比如,我们可以做以下例子
# a list comprehension(计算呢5范围内数字的3次方)
cubes = [i**3 for i in range(5)]
print(cubes)
结果:
>>>
[0,1,8,27,64]
>>>
注:list comprehensions是来自于数学中有明确条件限制的集合中用来表示元素的字母
练习:
以下递推式构造表会创建什么?
nums = [i*22 for i in range(10)]
a.1到10的所有数字
b.1到18的偶数
c.1-10的偶数
2)list comprehensions 也可以包含一个if语句来强制列表中值的条件
例子:
evens = [i**2 for i in range(10) if i**2 % 2 == 0]
print(evens)
结果:
>>>
[0,4,16,36,64]
>>>
练习:
创建一个列表:乘3的数字范围在 1-20
a = ___ i for i in range(20) if i%___ ==(0)
3)试着在非常广泛的范围内创建一个列表将导致一个memoryerror,这个代码显示一个例子,理解下在递推式列表里爆内存的情况
例子:
even = [2*i for i in range(10*100)]
结果:
>>>
memory error
>>>
练习:
填空题
a = [x*10 ___x____ range(__,9)]
(完)