文章目录
- 1.列表的概念
- 1.什么是列表
- 1.2.列表中元素的索引概念
- 2.列表的简单定义
- 3.获取列表中某个元素的索引
- 3.1.如何获取列表中某个元素的索引
- 3.2.各种场景获取列表中元素的索引
- 4.使用运算符in检查列表中是否存在指定元素
1.列表的概念
1.什么是列表
Python中的列表其实就是其他编程语言中的数组,如果理解数组的概念,那么面对Python中的列表将会很简单。
为了能够使程序方便的存储和操作数据,Python语言也是提供了一些内置的数据结构,列表就是其中的一个内置数据结构,我们可以直接在代码中使用这些内置的数据结构。
列表和数组的概念一样,并且表现形式也大差不差,在列表中每一个数据元素都有两个索引元素,也可以说是下标,通过这个索引元素可以精确的找到位于列表中的某个数据元素。
列表的逻辑图如下:
列表会在程序中大量使用,特点如下:
- 列表中的所有数据元素都是按照顺序有序排列的,列表也属于序列类型。
- 列表中的所有数据元素都会有两个整数类型的索引元素,一个是从正数索引元素,一个是负数索引元素,通过指定的索引能够精确找到唯一的某个数据元素。
- 列表中的多个数据元素内容可以存在重复性,例如第一个数据是jiangxl,第二个数据还可以是jiangxl。
- 列表中可以保存任何类型的数据,不受限制,多个类型的数据可以混合存储在一个列表中。
- 列表可以根据需求动态的伸缩,可以随意的增删列表中的数据元素,系统也会根据列表的动态变化从而分配和回收内存,因此使用列表前,无需指定列表占用的内存空间。
1.2.列表中元素的索引概念
在列表的概念图中,我们可以看到每个元素都有自己的索引号(索引名),并且在Python中,一个元素有两个索引号,通过索引可以精确到找到列表中特定的元素,第一个元素的索引从0开始。
列表中每个元素都有两个整数类型的索引,分别是:
- 正数索引,列表中第一个元素的索引是0,从0开始,以此类推,后面元素的索引依次递增1。
- 负数索引,列表中最后一个元素的索引是-1,从-1开始,依次类推,前面的索引依次递减1。
总之通过列表的两种类型索引号,都可以精确的找到特定元素。
2.列表的简单定义
列表相当于一个集合,在列表内有多个不同数据类型的内容,我们可以将列表赋值给变量,也可以直接打印列表的内容。
1)将列表直接复制给变量
定义列表然后将列表赋值给变量,最后打印变量的结果。
#定义变量liebiao1,将一个列表赋值给变量
liebiao1 = ['Jiangxl','程序员','99','北京交通大学',True]
#打印变量liebiao1即可看到列表的所有值
print(liebiao1)
#输出结果:['Jiangxl', '程序员', '99', '北京交通大学', True]
2)打印一个空列表
还可以打印一个空列表。
#打印一个空的列表
print([])
#输出结果:[]
3)使用list函数定义列表并打印
可以通过list函数来定义列表,然后使用print函数的打印列表的内容。
#使用内置函数list创建列表
print(list(['Jiangxl','程序员','99','北京交通大学',True]))
#输出结果:['Jiangxl', '程序员', '99', '北京交通大学', True]
#range函数是定义整数序列的,同样也是一个列表
print(list(range(1,20,3)))
#输出结果:[1, 4, 7, 10, 13, 16, 19]
4)使用len函数查询列表的长度(有多少个元素)
len函数可以统计列表中有多少个元素。
print(len(mylist))
5)使用count方法查询列表中一个元素出现的次数
mylist = ['西瓜', '草莓', '芒果', '火龙果', '山竹', '西瓜']
xgcount= mylist.count('西瓜')
print('西瓜出现了' + str(xgcount) + '次')
#输出结果:西瓜出现了2次
3.获取列表中某个元素的索引
3.1.如何获取列表中某个元素的索引
当我们定义好一个列表后,在列表中的每一个元素,我们都可以通过该元素的索引号来找到这个元素,首先我们先来看一下如何通过元素找到对应的索引号。
想要查看列表元素对应的索引号,可以调用index()方法来获取,但是该方法只能返回列表元素的正数索引,也就是第一个元素的索引号大于0的那个索引。
接下来我们定义下面一组列表,在图中我已经标记了每个元素的索引号,下面我们通过index方法来获取列表中某个元素的索引号。
index方法的获取某个元素索引的语法格式:
print(列表名.index(列表中的元素))
3.2.各种场景获取列表中元素的索引
1)定义列表
定义上图的列表。
liebiao2=['python',77,99,'jiangxl',66,55,77,65]
print(list(liebiao2))
2)获取列表中jiangxl元素的索引
分析:jiangxl这个元素在列表中的第四个位置上,索引起始是从0开始的,那么该元素的索引则是3。
print(liebiao2.index('jiangxl'))
#输出结果:3
打印出jiangxl这个元素的索引号为3。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B9rxwDJH-1669512080525)(https://gitcode.net/weixin_44953658/typorajiangxl-image/-/raw/master/Python-Image/image-20220727222749812.png)]
3)获取列表中77元素的索引
77这个元素在列表中出现了2次,也就代表该元素是重复的,我们先来观察一下当列表中有重复元素时,默认情况下Python会获取哪一个元素的索引。
print(liebiao2.index(77))
#输出结果:1
77这个元素在第二个位置和第七个位置处都定义了,默认情况下index()方法会读取第一次出现这个元素的索引号,也就是1。
4)当列表中有重复的元素时获取指定元素的索引
在上面,77这个元素在列表中定义了多次,有重复值,index方法只会读取第一次出现的索引号,那么我们要读取后面出现这个元素的索引号是多少时,就需要用到起始索引号(start)结束索引号(stop),指定index方法读取指定索引号范围内指定元素的索引号。
当index方法使用起始、结束索引号时,一定要指定开始索引,结束索引可以不指定默认是最后一个,切记不要只指定结束索引,否则查询的内容就不会是我们想要的。
当指定结束索引时,结束索引是不会被查询的,因此结束索引一定要比查找元素是索引大,否则数据将会不准确。
语法格式:
列表名.index(元素,起始索引,结束索引)
#代码的意思就是说,在起始索引号和结束索引号范围内,查找元素的索引号。
例如我们要读取77这个元素第二次在列表中出现的索引号,代码如下:
分析:第一个77元素在索引0~2之间,第二个77元素在索引5之后,因此我们需要指定起始索引为5,结束索引可指定可不指定,指定结束索引时,结束索引一定是大于查询元素的索引号的,否则返回的并不是我们想要的数据。
#在index方法中指定起始索引来获取指定范围内的元素索引号
print(liebiao2.index(77,5))
#代码的意思是:从索引号5后一直到最后一个索引处开始查询,查询出77这个元素的索引号
#返回结果:6
#在index方法中指定起始索引、结束索引,来获取指定范围内的元素索引号
print(liebiao2.index(77,5,7))
#代码的意思:从索引号5开始到索引号7这个范围内,查询77这个元素的索引号
#返回结果:6
通过指定元素的起始索引和结束索引,当列表中有重复元素时,就可以查找出特定元素的索引号。
5)获取列表中不存在的元素索引号
当我们要获取列表中不存在的元素索引号时,会抛出valueerror的错误。
print(liebiao2.index(8888))
4.使用运算符in检查列表中是否存在指定元素
一个列表中会包含很多个元素,我们可以使用运算符in去检查列表中是否有我们指定的元素。
- 使用运算符in检查列表中是否存在指定的元素,如果存在则返回True,如果不存在则返回False。
- 使用运算符not in检查列表中是否不存在指定的元素,如果不存在则返回True,如果存在则返回False。
1)定义一个列表
mylist = ["jiangxl", "linux", "kubernetes", "docker", "devops", 789, 987, 123]
2)检查k8s是否存在于列表mylist中
print("k8s" in mylist)
#输出结果:False
3)检查jiangxl是否存在于列表mylist中
print("jiangxl" in mylist)
#输出结果:True
4)检查k8s是否不存在于列表mylist中
print("k8s" not in mylist)
#输出结果:True
5)检查jiangxl是否不存在于列表mylist中
print("jiangxl" not in mylist)
#输出结果:False