list数据类型是python中的重要的数据类型,因为其的可操作性,日后在许多方面都要用到,这里进行list中的方法与函数的回顾,算是做笔记。
python中列表的函数共有四个,分别是len() , max() , min() , list()
1.len(list)
len()函数是统计列表中有多少元素
例:
>>> a = [1,2,3,4,5]
>>> len(a)
5
但是,有一点要特别说明,len()统计的是元素的个数,不是数字的个数;有嵌套时,深度套娃也只算是一个元素
下面这个例子非常有代表性
>>> list = ["1","2",["3","4"],["5"],[6,5,[44,23423]]]
>>> len(list)
5
2.max(list)与min(list)
max 与 min 函数返回list中的最大值与最小值
当用 max() 函数当比较容器类型中的列表或者元组数据类型时,当其中的元素全部为数字类型时,直接根据值的大小比较。当其中的元素全部为字符串类型(string)时,则比较的是每个字符串元素的第一个字符的 ASCII 的大小。如果列表或者元组中的元素为数字类型和字符串类型混杂时,则无法比较。–该段来自菜鸟教程max()模块中的笔记
3.list()
list()函数可以将其他的数据类型转化成list类型,用法比较活,可以自行试验
(1).list.append()
在末尾添加新的元素
注:这里添加的是单个元素,假设说你想将一次把一个列表添加到另一个列表中而不形成列表的嵌套,就不能使用append。
>>> a = [i for i in range(5)]
>>> a
[0, 1, 2, 3, 4]
>>> a.append([i for i in range(5)])
>>> a
[0, 1, 2, 3, 4, [0, 1, 2, 3, 4]]
还有一点
append() 是浅拷贝,如果在 append 一个对象时,需要特别注意:
>>>alist = []
>>> num = [2]
>>> alist.append( num )
>>> id( num ) == id( alist[0] )
True
如果使用 num[0]=3,改变 num 后,alist[0] 也随之改变。
如不希望,需要使用 alist.append( copy.deepcopy( num ) )—该段来自菜鸟教程append中的笔记
(2).list.extend()
extend可以将多个元素添加到列表中,但是要注意,extend传入的参数的数据类型是列表,元组,字典(将key依次从末尾传入list),集合
>>> a = [i for i in range(5)]
>>> a
[0, 1, 2, 3, 4]
>>> b = [i for i in range(5,9)]
>>> b
[5, 6, 7, 8]
>>> a.extend(b)
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8]
不能是数字和字符串
>>> a.extend(1)
Traceback (most recent call last):
File "" , line 1, in <module>
a.extend(1)
TypeError: 'int' object is not iterable
(3).list.insert(index, obj)
【补充】
这里用到了index–也就是索引,关于索引
这里我简单介绍一下关于这里要用到的索引知识,更深入的请自行查找。(有基础的同学可以自行跳过这段)
索引是一个汉语词语,读音为suǒ yǐn。一指检寻图书资料的一种工具,将书刊中的内容或项目分类摘录,标明页数,按一定次序排列,附在一书之后或之前,或单独编印成册,以便读者查阅,旧称通检或备检;—来自百度百科
正如上文说说,索引是一种检索工具,在python中索引是为了能从list,tuple以及array等中取出数据。
1.在python中,为了能取到值,每个元素都会有个下标,这个标是从0依次开始,
也就是说下标为“0”的元素在我们认知中是第1个
下标为“1”的元素是第2个
依次排列
2.上面的一是从前往后排的,那么从后往前排呢?
这里python的规定是最后一个是-1
倒数第二个是-2
依次排列
3.那么如何取值呢?
见下面的代码
>>> a = [i for i in range(10)]
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[0]
0
>>> a[1]
1
>>> a[2]
2
注:关于索引,还有其他操作,但在这里只用到这一点点知识,我就不过多赘述了。
回到正题,list.insert()是通过索引来添加值
见下面的代码
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a.insert(1,"我")
>>> a
[0, '我', 1, 2, 3, 4, 5, 6, 7, 8, 9]
在这里还要说明一点,这里的insert中的索引是我理解为是插入后该元素的索引值,如果不对还请大佬在评论指正,谢谢。
(1).list.pop()
这个可以删除list的最后一个元素
注:在pop传入的参数为index
默认参数为index=-1
如果想删除其他的可以向其中传入参数
这里再说明一点,使用pop删除会有返回值的,如果需要使用这个值,可以用变量来接收一下返回值
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a.pop(1)
1
(2).list.remove()
remove中要传入参数,这个参数是要删除的的元素,如果list中拥有两个一样的元素,优先删除第一出现的元素(即从前往后找)
>>> b = [1,2,3,4,5,6,7,1]
>>> b.remove(1)
>>> b
[2, 3, 4, 5, 6, 7, 1]
(3)del list[]
这个是一个关键字,因为功能一样就放在这里讲
del list[]使用也是依靠索引,可以参见pop条
(1).del list
(2).list.clear()
这个没啥好说的,就是清空嘛
(1).list.count()
对list中某元素出现的次数进行统计
>>> b
[1, 2, 3, 4, 5, 6, 7, 1]
>>> b.count(1)
2
(2).list.sort()与list.reverse()
list.reverse()对list进行倒序排列
注:这里的倒序排列是将现在的list反过来,不会进行大小的排序
如果想要降序,需要传入reverse = True
>>> a = [33425,3446,342,534,5674,45,23,534,52,342,34,235,346,34]
>>> a.sort()
>>> a
[23, 34, 34, 45, 52, 235, 342, 342, 346, 534, 534, 3446, 5674, 33425]
>>> a.sort(reverse = True)
>>> a
[33425, 5674, 3446, 534, 534, 346, 342, 342, 235, 52, 45, 34, 34, 23]
sort 还可以指定key来排序
# 列表
random = [(2, 2), (3, 4), (4, 1), (1, 3)]
# 指定第二个元素排序
random.sort(key=takeSecond)
# 输出类别
print ('排序列表:', random)
排序列表:[(4, 1), (2, 2), (1, 3), (3, 4)]
https://blog.csdn.net/qq_34493908/article/details/81560546
本文对list中的方法进行了总结,list在今后的许多地方的使用非常广,博主近期要去参加一个比赛才发现自己对list有些遗忘,希望大家能好好学习,天天向上。
看到这里,不给博主来个点赞和收藏吗?
参考网站:https://www.runoob.com/