一 列表(list)
列表是Python中的一个对象
对象(Object)就是内存中专门用来存储数据的一块区域
数值,它只能保存一个单一的数据
列表中可以保存多个有序的数据
列表的使用:
1.列表的创建
my_list=[] 创建了一个空列表
print(my_list,type(my_list))
列表中存储的数据,我们称之为元素
一个列表中可以存储多个元素,也可以在创建列表时指定列表中的元素
my_list=[10,20,30,40,50] 创建一个只包含五个元素的列表
当向我们当中添加多个元素时,多个元素之间使用逗号隔开
列表是用来存储对象的对象
列表可以保存任意的对象
my_list=[10,'hello',None,True,[1,2,3]]
2.列表中数据的操作
列表中的对象都会按照插入的顺序存储到列表中
我们可以通过索引index获取列表中的元素
my_list=[10,'hello',None,True,[1,2,3]]
print(my_list[4][0])
len()可以获取列表的长度
print(len(my_list))
3.切片(相当于java中的子数组)
切片指从现有列表中,创建一个子列表
语法1:列表[起始:结束]
通过切片获取元素时候,会包括起始位置的元素,不会包括结束位置的元素,切片不会影响原列表
如果不写结束位置则会截取到最后一个元素
如果不写开始位置则会从第一个元素开始截取
如果全部不写相当于创建了一个列表的副本.
my_list=[1,2,3,4,5]
my_list[1:4]=[2,3,4]
my_list[:4]=[1, 2, 3, 4]
my_list[1:]=[2, 3, 4, 5]
语法2:列表[起始:结束:步长] 步长默认是1 就是隔几个取一次
步长可以是负数,不能是0
如果是负数,则会从列表的后面往前面取
my_list=[1,2,3,4,5]
print(my_list[1:4:2])=[2, 4]
print(my_list[::-2])=[5, 3, 1]
注意是:前闭后开
Python中列表的索引可以是负数,如果是负数则从后往前获取元素
my_list=[1,2,3,4]
my_list[-1]=4
二 通用操作
+ * 像字符串的操作一样
my_list=[1,2,3]+[4,5,6]
my_list=[1,2,3]*3
in 和not in 返回结果为True OR False
in用来检查元素是否存储在列表中 在 True 不在 False
in用来检查元素是否不存储在列表中 不在True 在 False
print(1 in my_list) True
min() 和 max() 获取列表中的最小最大值
print(max(my_list))
index()和count() 俩个method
方法和函数基本上是一样的,但是方法必须通过对象来调用
s.index()
s.count()
s=sequence
获取该元素在列表中的第一次索引位置
my_list.index(1)=0
如果在列表中有多个重复的元素
index的第二个参数表示从第几个位置开始寻找,第三个参数表示结束位置,在哪个索引和哪个索引之间
查找
my_list=[1,2,1,3,4,5,'11']
print(my_list.index(1,2))=2
count()
print(my_list.count(1))=2
统计1在列表中出现的次数
三 序列(sequence)
序列是Python中最基本的一种数据结构
数据结构是指计算机中数据存储的方式
序列用于保存一组有序的数据,所有的数据在序列中都有一个唯一的位置(索引)
并且序列中的数据会按照添加的顺序来分配索引
序列分为俩大类
可变序列:
列表(list)
不可变序列(序列中的元素不能改变)
字符串(str)
元组(tuple)
也就是说以上二里面的通用操作适合所有序列
eg:my_list='123'
print(my_list.index('123'))=0
1. 修改列表中的元素
-直接通过索引修改
my_list=[1,2,3,4]
my_list[0]=2
print(my_list)=[2, 2, 3, 4]
-通过del来删除元素
del my_list[2] 参数:索引下标
my_list=[1,2,3,4]
my_list[0]=2
print(my_list)
del my_list[2]
print(my_list)=[2, 2, 4]
-通过切片来修改列表(再给切片赋值的时候,只能使用序列即包含 列表/字符串/元组等)
my_list=[1,2,3,4]
my_list[0:2]='12345'
print(my_list)
# ['1', '2', '3', '4', '5', 3, 4]
my_list=[1,2,3,4]
my_list[0:0]=[18] --这个表示的含义是向索引为0位置插入元素
print(my_list)
# [18, 1, 2, 3, 4]
当设置了步长时,序列中的元素的个数必须和切片中的元素的个数一致
my_list=[1,2,3,4]
my_list[::2]=[5,6,7]
print(my_list
# ValueError: attempt to assign sequence of size 3 to extended slice of size 2
这个时候他会显示按照2步的步长你需要给一个2个长度的切片
my_list=[1,2,3,4]
my_list[::2]=[5,6]
print(my_list)
# [5, 2, 6, 4]
通过切片来删除元素
del my_list[0:2]
del my_list[::2]
my_list[1:3]=[]
以上操作仅适用于可变序列,如果不可变序列要修改,需要将其转换为list
s='hello'
s=list(s)
s[0]='s'
print(s)
# ['s', 'e', 'l', 'l', 'o']
2. 通过方法来修改序列
append() 像列表的最后添加一个元素
my_list=[1,2,3,4]
my_list.append(5)
print(my_list)
# [1, 2, 3, 4, 5]
insert() 像列表的指定位置添加元素
参数 :1.要插入的位置
2.要插入的元素
my_list=[1,2,3,4]
my_list.insert(2,5)
print(my_list)
# [1, 2, 5, 3, 4]
extend() 使用新的序列扩展当前序列
参数:序列
会将该序列中的元素添加到当前的列表中 就是多个元素的append
my_list=[1,2,3,4]
my_list.extend([5,6])
print(my_list)
# [1, 2, 3, 4, 5, 6]
clear()清空序列
my_list.clear()
pop()
根据索引删除并返回指定元素
参数:索引位置,如果不写参数则默认删除最后一个元素
my_list=[1,2,3,4]
result=my_list.pop(2)
print(result)
# 3
my_list=[1,2,3,4]
result=my_list.pop()
print(result)
# 4
remove() 根据值去删除元素,如果有多个重复的值会删除第一个值
my_list=[1,2,3,4]
my_list.remove(3)
print(my_list)
# [1, 2, 4]
reverse()用来反转列表
my_list.reverse()
my_list=[1,2,3,4]
my_list.reverse()
print(my_list)
# [4, 3, 2, 1]
sort()默认升序 降序的话 sort(reverse=True) 直接sort+reverse好像不行
my_list=['b','d','c','a']
my_list.sort()
print(my_list)
# ['a', 'b', 'c', 'd']