python列表list常用函数,append()、len()、extend()、index()、sort()等

python为列表list内置了很多很有用的函数,比如append()、index()等,在大数据和机器学习的数据处理中都十分常用。这一节我们将逐一进行简单的介绍。

append()函数

python的append()函数可以在列表的“末尾”添加元素,可以是任何类型的数据。python的列表不像其他的一些计算机语言如go、c等需要自己去配置列表的长度(元素个数)等,python会自动分配内存地址,虽然很方便,但这也是python太高级(封装太高级),而不灵活的性能不高的原因之一。

示例

>>> a = [] #声明一个空列表,并赋值给变量a
>>> a.append(1) #追加一个整型元素1
>>> a
[1]
>>> a.append('x1y1z1.com') #列表追加元素为一个字符串
>>> a
[1, 'x1y1z1.com']
>>> a.append(['至简计算']) #列表追加元素为另一个列表
>>> a
[1, 'x1y1z1.com', ['至简计算']]

extend()函数

extend()函数与append()函数的功能有相似之处。在大数据处理之外的其他python开发实战之中,extend()函数应用得并不是很多,至少鄙人的经验是这样的。但是,在大数据和机器学习当中,extend()就可能经常用到,因为大数据和机器学习处理的数据大都是矩阵,而矩阵是什么——可以简单理解为多维列表,换言之就是处理列表,这个时候append()函数和extend()就会经常使用到。

extend()函数与append()函数的不同之处是,extend()函数是“拓展”原本的列表,这个理解起来可能有些混乱,可以看下例子,或敲敲代码,试一下,就一目了然了。

示例

>>> a = [1,2]
>>> a.extend([5,6])
>>> a
[1,2,5,6]
>>> a = [1,2]
>>> a.append([5,6]) #可以比较一下extend()和append()的区别
>>> a
[1,2,[5,6]]

len()函数

len()函数可以用于获取列表的长度,也就是元素个数,上一节我们介绍了一个关于列表超出索引会引发错误的例子中就用到了len()这个函数,而除了这个用途,在for循环当中,len()也非常有用,简直就是标配。

示例

>>> a = list(range(1,10))
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> len(a) #计算列表a的元素个数
9
>>> for i in range(len(a)): #用for循环进行遍历列表a
    print(a[i])
1
2
3
4
5
6
7
8
9

index()函数

在前面介绍字符串的时候,我们已经介绍到了index()这个函数,在列表当中,index()的作用比在字符串中更常见,个人认为也更为重要,在NLP自然语言处理或机器学习或人工智能深度学习当中我们会遇到词向量这个概念,而词向量的训练的过程中,我们还会遇到一个叫做one-hot编码,即独热编码的概念,这时就需要用到index()函数了,具体的我们将在机器学习的章节中具体介绍。

示例

>>> a = [1,2,'x1y1z1.com']
>>> a.index(2) #获取元素2的索引——切记索引从0开始
1

max()函数和min()函数

顾名思义,max()函数就是用来获取列表中元素的最大值,min()函数就是用来获取列表元素中的最小值。

示例

>>> a = [1,2,3,6,5,8,9,1]
>>> max(a) #获取列表a中的最大值
9
>>> min(a) #获取最小值
1
>>> b = [1,2,0.5,'a','c','x1y1z1.com'] #遇到列表的元素中的类型并非是同一类型的时候会发生什么呢
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '>' not supported between instances of 'str' and 'int'
>>> c = ['a','B','x1y1z1.com'] #遇到字符串列表时,max()函数或min()函数为根据A-Za-z的顺序对字符串的第一个字符的值进行排序
>>> max(c)
'x1y1z1.com'
>>> min(a)
'A'

sort()函数

sort()函数可以对列表进行排序,这个在web应用的编程当中会比较经常使用,在大数据或机器学习等应用当中就可能比较少了,因为大数据或机器学习或深度学习更注重的是样本数据的随机性。

>>> a = [2,1,3,6,5,9]
>>> a.sort()
>>> a
[1, 2, 3, 5, 6, 9]
>>> b = ['b','a','d','c','e','g','f']
>>> b.sort()
['a', 'b', 'c', 'd', 'e', 'f', 'g']

reverse()函数

reverse()函数也是用来排序,与sort()不同的是,reverse()是进行反向排序,比如电商平台的可以让价格以高到低的方式进行排序,也可以用价格从低到高进行反向排序。

示例

>>> a = [2,1,3,6,5,9]
>>> a.reverse()
>>> a
[9, 6, 5, 3, 2, 1]
>>> b = ['b','a','d','c','e','g','f']
>>> b.reverse()
>>> b
['f', 'g', 'e', 'c', 'd', 'a', 'b']

insert()函数

上一节我们介绍到了列表的修改、删除(del、remove()和pop()函数),我们漏了一个添加(插入)的函数,即insert(index, var)函数,可以将元素插入到列表中的某一个位置,其中第一个参数为要插入的地方(索引),var为要插入的值。

示例

>>> a = [1,2,3,4,5,6]
>>> a.insert(1,'x1y1z1.com') #在索引为1的地方插入一个字符串
>>> a
[1, 'x1y1z1.com', 2, 3, 4, 5, 6]

count()函数

count()函数用于对列表中的某一个元素进行计数。

>>> a = [1,2,3,1,2,1]
>>> a.count(1) #对列表a中的元素1进行计数
3 #1这个元素共有三个
>>> a.count(2)
2 #2这个元素共有两个
>>> a.count(3)
1 #3这个元素只有1个

copy()函数

顾名思义,就是复制列表,可以进行深度拷贝,修改深度拷贝的列表后,原列表不会跟着被修改,而直接将列表赋值给其他的变量的情况下,修改被赋值的变量当中的元素后,原列表的元素值也将被修改,试一试下面的示例可以一目了然。

示例

>>> a = [1,2,3,4,5,6]
>>> b = a.copy()
>>> b
[1,2,3,4,5,6]
>>> b[1] = 'x1y1z1.com'
>>> b
[1,'x1y1z1.com',3,4,5,6]
>>> a #a中索引为1元素的值并没有被改变
[1,2,3,4,5,6]
>>> c = a #将列表a直接赋值给变量c
>>> c
[1,2,3,4,5,6]
>>> c[1] = 'Yes'
>>> c
[1,'Yes',3,4,5,6]
>>> a #a中索引为1的元素的值被修改
[1,'Yes',3,4,5,6] 

clear()函数

clear()函数可以用于清空列表中的元素,不过并没有删除列表

示例

>>> a = [1,2,3]
>>> a.clear() #清空列表a中的元素
>>> a
[]

好了,下一节我们将详细介绍python列表list的切片和for循环。


全栈后端 / python教程 :


























Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.