每天三分钟,我们一起学python。在上期python基本数据类型——字符串中,我们学习了python中字符串的基本知识和操作。学习了字符串还有数字类型,我们基本上可以进行许多操作了,但是在很多情况下还是远远不够的,我们会需要用到由各种基本数据类型组成集合,集合的不同组成方式就是数据结构。在python中内置的数据结构有四种:
- 列表(list)
- 元组(tuple)
- 字典(dict)
- 集合(set)
今天,我们要学习的就是python数据结构中的列表(list)。
列表(list)基本介绍
list可以通过方括号括起、逗号分隔的一组值得到。一个列表可以包含不同类型的元素,但通常使用时各个元素类型相同。例如,下面的列表中有
它是一组用方括号括起来、逗号分隔的数据。列表的元素可以是任何类型的,但使用时通常各个元素的类型是相同的。下面的列表有6个元素,元素类型包括字符串、整数、浮点数和列表:
>>> list_test=[1,2,3.1415926,'yhmxx.cn','有趣技术交流分享',[1,2,3]]
>>> list_test
[1, 2, 3.1415926, 'yhmxx.cn', '有趣技术交流分享', [1, 2, 3]]
列表(list)的索引(index)
与字符串一样,列表也支持索引。例如:
>>> list_test=[1,2,3.1415926,'yhmxx.cn','有趣技术交流分享',[1,2,3]]
>>> list_test[0]
1
>>> list_test[5]
[1, 2, 3]
>>> list_test[4]
'有趣技术交流分享'
>>> list_test[3]
'yhmxx.cn'
>>> list_test[-1]
[1, 2, 3]
>>> list_test[-4]
3.1415926
通过索引,我们不仅可以访问到某一元素,还可以修改某一元素。既然我们可以修改,说明列表是一种可变的( Mutable) 数据类型, 就是说这种类型是可以被改变的。
>>> list_test=[1,2,3.1415926,'yhmxx.cn','有趣技术交流分享',[1,2,3]]
>>> list_test[1]=1.732
>>> list_test
[1, 1.732, 3.1415926, 'yhmxx.cn', '有趣技术交流分享', [1, 2, 3]]
列表(list)的切片(slicing)
通过索引,我们可以访问列表的某一个元素。但有时候我们要取列表的一个片段,这就是“切片”操作。所有的切片操作都返回一个新列表,这个新列表包含所需要的元素。就是说,如下的切片会返回列表的一个新的 拷贝。
>>> list_test=[1,2,3.1415926,'yhmxx.cn','有趣技术交流分享',[1,2,3]]
>>> list_test[:]
[1, 2, 3.1415926, 'yhmxx.cn', '有趣技术交流分享', [1, 2, 3]]
切片是通过索引来实现的,索引使用冒号:分隔,分别是切片的开始索引和结束索引,[1:5]代表的是一个左开右闭区间,即包含左边索引的元素,到右边索引为止但不包括该元素。也就是[0:a]+[a:b]=[0:b]。
>>> list_test=[1,2,3.1415926,'yhmxx.cn','有趣技术交流分享',[1,2,3]]
>>> list_test[1:3]
[2, 3.1415926]
>>> list_test[:5]
[1, 2, 3.1415926, 'yhmxx.cn', '有趣技术交流分享']
>>> list_test[2:]
[3.1415926, 'yhmxx.cn', '有趣技术交流分享', [1, 2, 3]]
列表运算
列表也可以像字符串那样进行一些运算。
1.“+”运算:将列表进行合并。
>>> list1=[1,2,3]
>>> list2=[4,5,6]
>>> list1+list2
[1, 2, 3, 4, 5, 6]
2.“*”运算:将列表重复。
>>> list1=[1,2,3]
>>> list1*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
列表删除(del)
有一种方式可以从列表按照给定的索引而不是值来移除一个元素: 那就是 del 语句。 del 语句也可以用来从列表中移除切片或者清空整个列表。例如:
>>> list_test=[1,2,3.1415926,'yhmxx.cn','有趣技术交流分享',[1,2,3]]
>>> del list_test[1]
>>> list_test
[1, 3.1415926, 'yhmxx.cn', '有趣技术交流分享', [1, 2, 3]]
>>> del list_test[0:2]
>>> list_test
['yhmxx.cn', '有趣技术交流分享', [1, 2, 3]]
>>> del list_test[:]
>>> list_test
[]
>>> del list_test
>>> list_test
Traceback (most recent call last):
File "", line 1, in
list_test
NameError: name 'list_test' is not defined
需要注意del list_test[:]和del list_test是不同的,del list_test[:]是删除列表中的所有元素,列表变成一个空列表,但是列表还在。而del list_test是将列表删除,列表就不存在了。
列表相关内置函数
1. len( )
计算列表的长度,即计算列表元素的个数。
2.max( )
返回列表元素中的最大值,列表元素必须是同一类型且可比较,比如都是数字型的,或都是字符串,如果类型不统一就会报错。
3.min( )
返回列表元素中的最小值。元素类型要求跟max( )一样。
4.sum( )
计算列表所有元素的和,其元素类型必须是数值型的(整数、浮点数)。
5.sorted( )
返回一个排序的列表,但并不改变原列表。
6.append(x)
在列表的末尾添加一个元素。相当于 a[len(a):] = [x] 。
7.insert(i, x)
在给定的位置插入一个元素。第一个参数是要插入的元素的索引,所以 a.insert(0, x) 插入列表头部, a.insert(len(a), x) 等同于 a.append(x) 。
8.remove(x)
移除列表中第一个值为 x 的元素。如果没有这样的元素,则抛出 ValueError 异常。
9.pop([i])
删除列表中给定位置的元素并返回它。如果没有给定位置, a.pop() 将会删除并返回列表中的最后一个元素。(方法签名中 i 两边的方括号表示这个参数是可选的,而不是要你输入方括号。你会在 Python参考库中经常看到这种表示方法)。
10.clear( )
删除列表中所有的元素。相当于 del a[:] 。
11.index( )
返回遇到的第一个某值的索引,如果列表不包含该值则抛出错误。
12.count(x)
返回元素 x 在列表中出现的次数。
13.reverse( )
反转列表中的元素。
14.copy( )
返回列表的一个浅拷贝。相当于 a[:] 。
可能会注意到,像 insert , remove 或者 sort 方法,只修改列表,没有打印出返回值——它们返回默认值 None 。这是 Python 中所有可变数据结构的设计原则。
以上就是今天给大家分享的内容了,如果大家喜欢我分享的内容,别忘了关注点赞评论转发哦!如果大家有什么问题可以在评论区留言,大家一起探讨交流。后期我会分享更多精彩内容,欢迎大家持续关注!