【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!版权所有,侵权必究!
[返回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最大的优势和特点就在于它的简洁性,能用最短的代码实现更多的功能。