列表生成式

大数据学习路线图

【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!版权所有,侵权必究!
[返回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]
例如:

  1. >>> r = range(0,4) #从0开始,到4结束,[0,1,2,3]
  2. >>> r
  3. range(0, 4)
  4. >>> for x in r: #r需要利用for循环来访问
  5. ... print(x,end="") #不换行输出
  6. ...
  7. 0123 #输出结果
  8. >>> list(range(0,6,2)) #利用list()将range转为列表对象
  9. #起始下标:0,终止下标:6,步长:2。注意这里不包括终止下标6,所以输出[0, 2, 4]
  10. [0, 2, 4]
  11. >>> tuple(range(2,9,3)) #利用tuple()将range转为元组对象
  12. (2, 5, 8)
Python

列表生成式

通过列表生成式,可以很容易生成有规律的序列。
语法格式:

  1. [function(x) for x in list]
Python

例如:要求生成一个列表[1x1,2x2,3x3,4x4]

  1. >>> data = [1,2,3,4]
  2. >>> def func(x):
  3. ... return x*x
  4. ...
  5. >>> [func(x) for x in data]
  6. [1, 4, 9, 16]
Python

如果function()比较简单,我们可以不预先定义function(),直接通过表达式的形式来使用列表生成式,同时如果列表是数字且有规律,可以通过range()函数来生成的,这样我们就能用下面的一行代码,实现上述代码的所有功能。

  1. >>> [x*x for x in range(1,5)]
  2. [1, 4, 9, 16]
Python

例如:将所有的字符串变成小写

  1. >>> L = ["Hi","Hello","Hey","PYTHON"]
  2. >>> [x.lower() for x in L]
  3. ['hi', 'hello', 'hey', 'python']
Python

总结

内置函数range()可以生成一个有规律的数字序列,我们可以通过列表表达式很方便的生成一个列表(可以是数字列表,字符串列表等)。Python最大的优势和特点就在于它的简洁性,能用最短的代码实现更多的功能。