序列概念介绍:
序列时python中最基础的数据结构,在序列中每个元素都有自己的编号,第一个元素的编号索引为0,第二个为1,以此类推,python中的元祖和列表就是序列,其中的字符串也是序列中的一种
二者的定义区别:
列表的定义如下:list = [], list = [1,2,3,4]
元祖的定义如下:tup = (), tup = (1,2,3,4)
二者之间类似,列表使用[]进行定义,元组使用()进行定义
注意:容器是python支持的一种基本的数据结构,其中两种主要容器结果是序列和映射
两者之间通用的操作(序列操作)
索引:元组和列表都可以通过索引获取序列中的元素,由此也可以了解到元祖也是一种有序的容器结构
list = [1, 2, 3, 4]
tup = (1, 2, 3, 4)
print(list[0])
print(tup[0])
print(list[0:3])
print(tup[0:3])
# 运行结果
1
1
[1, 2, 3]
(1, 2, 3)
切片:切片与索引的作用一致,用于访问容器中的数据,不同之处在于根据索引我们一次只能获取一个元素,使用切片我们能获取容器对象中的一部分元素,切片时我们需要提供两个切片的边界,第一个在序列的编号范围内,第二个可以不在编号的范围内
list = [1, 2, 3, 4]
tup = (1, 2, 3, 4)
# 获取编号为0-3的元素
print(list[0:3])
print(tup[0:3])
# 获取最后两位, 使用负数进行切片
print(list[-3:-1])
步长概念: 在切片中,默认的是三个参数,两个边界值与一个步长值,步长用于每隔多少元素去出一个元素
# 步长,取出2,4,6,8
list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list[1:9:2])
相加:序列的相加与字符串的相加一致,产生一个全新的序列,在列表和元组中的相加法则是列表与列表进行相加,元组与元组进行相加
# 序列与元组之间的相加
list1 = [1, 3, 5, 7, 9]
list2 = [2, 4, 6, 8]
tup1 = ('a', 'b', 'c')
tup2 = ('A', 'B', 'C')
# 序列与序列相加
print(list1 + list2)
# 元组与元组相加
print(tup1 + tup2)
‘’‘元祖与列表之间不能进行相加’‘’
# 序列与元组相加
# print(list1 + tup1)
# 元组与序列相加
# print(tup2 + list2)
相乘:重复原序列创建一个新的序列
list1 = [1, 3, 5, 7, 9]
listnew = list1 * 2
print(listnew)
# 打印结果
[1, 3, 5, 7, 9, 1, 3, 5, 7, 9]
成员资格检查:成员检查主要用于检测序列中是否含有某个元素,我们使用in运算去判断,返回结果是一个bool值
list1 = [1, 3, 5, 7, 9]
if 1 in list1:
print("存在")
else:
print("不存在")
长度、最大值、最小值:python中分别使用len()、max()、min()去求取序列中的最大值,最小值,以及长度
列表的基本操作
- 创建列表函数list(参数),其参数可以是任意的序列类型数据
-
list1 = [1, 2, 3, 4] listnew = list(list1) listStr = list("hello Word")
- 修改列表,给列表进行赋值,列表的赋值使用序列编号进行赋值和使用切片进行赋值结果如下
-
list1 = [1, 2, 3, 4] # 使用编号赋值 list1[1] = "hello" print(list1) # 使用切片赋值 list1[1:2] = "hello" print(list1) list1[1:2] = ["hello"] print(list1) # 打印结果 [1, 'hello', 3, 4] [1, 'h', 'e', 'l', 'l', 'o', 3, 4] [1, 'hello', 3, 4]
- 删除元素,列表删除元素是通过del 列表元素 或者del列表切片进行删除
-
list1 = [1, 2, 3, 4] # 删除第一个元素 del list1[0] print(list1) # 删除切片 del list1[0:2] print(list1) # 打印结果 [2, 3, 4] [4]
- 将一个对象附加到列表末尾,与数组一致通过使用append()方法
-
list1 = [1, 2, 3, 4] # 末尾增加一个对象 list1.append("name") print(list1) # 末尾追加一个元祖 list1.append(("name", "age", "sex")) print(list1)
- 清除列表中的内容实用clear方法
- 使用copy方法复制列表
- 使用count统计元素出现次数
-
list1 = [1, 2, 3, 4, 1, 1, 2, 3] print(list1.count(1))
- extend方法将多个对象添加到列表末尾
-
list1 = [1, 2, 3, 4, 1, 1, 2, 3] # 末尾追加一个元祖 list1.extend(["name", "age"]) print(list1)
index,返回查找的索引,如果含有重复的数据时返回的时第一个查到到的下
-
list1 = [1, 2, 3, 4, 1, 1, 2, 3] print(list1.index("3"))
- insert将对象插入列表
-
>>> numbers = [1,2,3,4] >>> numbers.insert(1,"name") >>> print(numbers) [1, 'name', 2, 3, 4] >>>
- pop方法为删除一个元素并返回这个元素值,删除的是末尾元素
-
list1 = [1, 2, 3, 4, 1, 1, 2, 3] # 弹出最后一个 num = list1.pop() print(num) # 弹出编号为3的 indx = list1.pop(3) print(indx)
- remove用于移除一个指定的对象
-
>>> numbers = [1,2,3,4] >>> numbers.insert(1,"name") >>> print(numbers) [1, 'name', 2, 3, 4] >>> numbers.remove("name") >>> print(numbers) [1, 2, 3, 4] >>>
- reverse按相反的顺序排列列表中的元素, 仅仅用于倒叙输出
-
list1 = [1, 3, 5, 2, 4, 7, 6, 8, 9] list1.reverse() print(list1) [9, 8, 6, 7, 4, 2, 5, 3, 1]
- sort进行排序的方法,sort默认的排序方法时从小到大的排序方法
-
list1 = [1, 3, 5, 2, 4, 7, 6, 8, 9] list1.sort() print(list1) [1, 2, 3, 4, 5, 6, 7, 8, 9]