【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!版权所有,侵权必究!
[返回Python教程首页]
列表生成式
列表生成式通常是结合range()函数一起使用的,所以在介绍列表生成式前,我们先介绍Python的内置函数range()的使用方法。
range()
Python 的内置函数range() 函数可创建一个整数序列,一般用在 for 循环中。语法格式: range(start,end[,step])
。
start:起始下标(可选)。默认为0,例如range(5)
等价于range(0,5)
等价于[0,1,2,3,4]
。
end:终止下标。例如range(0,5)
等价于[0,1,2,3,4]
,注意不包括终止下标5。
step:步长(可选)。默认为1,例如range(0,3,1)
等价于range(0,3)
;range(0,6,2)等价于[0,2,4,6]
。
例如:
>>> r = range(0,4) #从0开始,到4结束,[0,1,2,3]
>>> r
range(0, 4)
>>> for x in r: #r需要利用for循环来访问
... print(x,end="") #不换行输出
...
0123 #输出结果
>>> list(range(0,6,2)) #利用list()将range转为列表对象
#起始下标:0,终止下标:6,步长:2。注意这里不包括终止下标6,所以输出[0, 2, 4]
[0, 2, 4]
>>> tuple(range(2,9,3)) #利用tuple()将range转为元组对象
(2, 5, 8)
列表生成式
通过列表生成式,可以很容易生成有规律的序列。
语法格式:
[function(x) for x in list]
例如:要求生成一个列表[1x1,2x2,3x3,4x4]
>>> data = [1,2,3,4]
>>> def func(x):
... return x*x
...
>>> [func(x) for x in data]
[1, 4, 9, 16]
如果function()比较简单,我们可以不预先定义function(),直接通过表达式的形式来使用列表生成式,同时如果列表是数字且有规律,可以通过range()函数来生成的,这样我们就能用下面的一行代码,实现上述代码的所有功能。
>>> [x*x for x in range(1,5)]
[1, 4, 9, 16]
例如:将所有的字符串变成小写
>>> L = ["Hi","Hello","Hey","PYTHON"]
>>> [x.lower() for x in L]
['hi', 'hello', 'hey', 'python']
总结
内置函数range()可以生成一个有规律的数字序列,我们可以通过列表表达式很方便的生成一个列表(可以是数字列表,字符串列表等)。Python最大的优势和特点就在于它的简洁性,能用最短的代码实现更多的功能。