python学习—序列类型、列表、元组
序列类型
序列类型的数据:数据内部的元素是有顺序的(有下标)
序列类型的数据:字符串类型、列表类型、元组类型
1、可以通过下标取值
s = "python"
li = ["aaa", "bbb", "ccc"]
tu = (123, "222", "999")
# 从前往后数下标:从0开始
print(s[3])
print(li[1])
print(tu[2])
# 从后往前数下标:从-1开始
print(s[-3])
print(li[-2])
print(tu[-1])
2、可以进行切片操作:获取数据中的某一段
①用法一:[起始位置 :终止位置] --------左闭右开
li = [11, 22, 33, 44, 55, 66, 77, 88]
res = li[0:4]
print(res)
print(li[2:5])
用法二:[起始位置 :终止位置:步长]
li = [11, 22, 33, 44, 55, 66, 77, 88]
res = li[::2]
结果:
反向切片
li = [11, 22, 33, 44, 55, 66, 77, 88]
res = li[2:-3]
结果:
步长为-1:倒过来获取数列
li = [11, 22, 33, 44, 55, 66, 77, 88]
res = li[::-1]
元组和列表
元组和列表里面可以存放任意类型的数据:字符串、布尔值、列表、数值
列表
list类型,通过[]表示,列表里的元素可以是任何数据类型
['python' , True, 666,['python' , 'hello' , 666],(1,2,2) ]
li = [11, 22, 33, 44, 55, 66, 77, 88]
①len函数
print(len(li))--------3
print(len(“aa”))--------2
列表的常用方法
①增
1、append:往列表尾部添加元素
li = [11, 22, 33, 44] li.append(111) print(li)
结果:[11, 22, 33, 44, 111]
2、insert(位置下标,内容):指定位置添加元素
li = [11, 22, 33, 44] li.insert(1,"aaa") print(li)
结果:[11, 'aaa', 22, 33, 44]
3、extend:一次性添加多个元素(用列表或元组表示),往列表尾部添加
li = [11, 22, 33, 44] li.extend([1,2,3]) print(li)
结果:[11, 22, 33, 44, 1, 2, 3]
②删
1、remove:删除指定元素(找到第一个,进行删除)
li = [2,6,4,5,6,11, 22, 33, 11,22,33] li.remove(11) print(li)
结果:[2, 6, 4, 5, 6, 22, 33, 11, 22, 33]
2、pop:通过下标删除指定元素,不写下标默认删除最后一个
li = [2,6,4,5,6,11, 22, 33, 11,22,33] li.pop(2) print(li)
结果:[2, 6, 5, 6, 11, 22, 33, 11, 22, 33]
3、clear:清空列表,删除列表中所有元素
li = [2,6,4,5,6,11, 22, 33, 11,22,33] li.clear() print(li)
结果:[]
③查
1、index():查找元素下标,找到第一个就返回
index(内容,下标起始位置,下标终止位置)(左闭右开)
li = [2,6,4,5,6,11, 22, 33, 11,22,33] res = li.index(11) print(res)
结果:5
li = [2,6,4,5,6,11, 22, 33, 11,22,33] res = li.index(11,-3,-1) print(res)
结果:8
2、count :查找列表中某个元素的个数
li = [2,6,4,5,6,11, 22, 33, 11,22,33] res = li.count(11) print(res)
结果:2
④改
通过下标修改值
li = [11, 22, 33] li[1] = 999 print(li)
结果:[11, 999, 33]
⑤其他方法
1、sort:对列表排序(全是数值的情况下),默认从小到大排序,正序
li = [11, 22, 33, 1, 2, 3] li.sort() print(li)
结果:[1, 2, 3, 11, 22, 33]
从大到小:sort(reverse=True),倒序
li = [11, 22, 33, 1, 2, 3] li.sort(reverse=True) print(li)
结果:[33, 22, 11, 3, 2, 1]
*reverse():反向
li = [11, 22, 33, 1, 2, 3] li.reverse() print(li)
结果:[3, 2, 1, 33, 22, 11]
2、copy:复制(复制后的id地址也就是内存地址和原来的不一致,复制后的内容指向一份新的内存地址)
li = [11, 22, 33] li2 = li li2.append(111) print(li) li3 = [11, 22, 33] li4 = li3.copy() li4.append(111) print(li3)
结果:
[11, 22, 33, 111]
[11, 22, 33]
元组
元组 tuple类型,元组是不可变类型,内部元素定义了之后就不能更改
('python' , True, 666,['python' , 'hello' , 666] )
元组只有查询方法:index、count
扩展:元组拆包(列表、字符串)
tu = (11, 22, 33) a, b, c = tu print(a, b, c) 结果:11 22 33