python list 列表
列表是一个可变的链表结构体,可变代表着不可hash
CRUD(创建,读,更新,删除)
和元组一样,多了一些特殊的方法
1,创建
2,读 (索引,切片)
3,更新 (插入,末尾添加(append vs extend))
4,删除 (按索引删除,按值删除,清空)
5,特殊方法 (拷贝,翻转,排序)
1,创建
userinfo1=[1,"zhangsan",18,"sales"]
print(userinfo1)
userinfo2=[]
print(userinfo2)
userinfo3=list((1,2,3,4,5))
print(userinfo3)
[1, ‘zhangsan’, 18, ‘sales’]
[]
[1, 2, 3, 4, 5]
2,读 (索引,切片)
#按照索引读取值,从左到右,或者从右到左
userinfo1=[1,"zhangsan",18,"sales"]
print(userinfo1[2])
print(userinfo1[3])
18
sales
#按照切片读,格式 userinfo1[start🔚step],start,end可以省略,step默认是1
list=[1,2,3,4,5,6,7,8,9,10]
print(list[1:3]) #start=1 end=3 step=1(默认) 前开后闭
[2, 3]
list=[1,2,3,4,5,6,7,8,9,10]
print(list[1:9:2]) #start=1 end=10 step=2 前开后闭
[2, 4, 6, 8]
list=[1,2,3,4,5,6,7,8,9,10]
print(list[:9:2]) #start=0(默认) end=9 step=2 前开后闭
[1, 3, 5, 7, 9]
list=[1,2,3,4,5,6,7,8,9,10]
print(list[1::2]) #start=1 end=缺省为最后 step=2
[2, 4, 6, 8, 10]
3,更新
#末尾添加 append 添加的作为一个整体
list=[1,2,3,4,5]
list.append([5,6,7,8]) #在列表末尾添加,作为一个整体添加
print(list)
[1, 2, 3, 4, 5, [5, 6, 7, 8]]
#末尾添加 extend 扩展后合并
list=[1,2,3,4,5]
list.extend([5,6,7,8]) #在列表末尾添加,转换成列表后合并到原来的列表中
print(list)
[1, 2, 3, 4, 5, 5, 6, 7, 8]
#中间插入 (实际应用中比较不推荐,列表为链表结构,虽然能插入,但是成本很高)
list=[1,2,3,4,5]
list.insert(2,"hello") #在index为2的位置添加,然后后面的数据往后移
print(list)
[1, 2, ‘hello’, 3, 4, 5]
4,删除 (按索引/值删除)
#按索引删除
list=[1,2,3,4,5]
list.pop() #默认index=-1,为删除最后的那个
print(list)
list.pop(0) #可以指定删除的index
print(list)
[1, 2, 3, 4]
[2, 3, 4]
#按值删除
list=[1,2,3,4,5,1]
list.remove(2) #删除值=2的值
print(list)
list.remove(1) #删除值=1的值,如果有重复的,则删除第一次匹配的
print(list)
[1, 3, 4, 5, 1]
[3, 4, 5, 1]
#清空 clear
list=[1,2,3,4,5]
list.clear() #清空列表中所有数据
print(list)
[]
5,特殊方法 拷贝,翻转,排序
#拷贝 将某一个列表复制后给另外的列表
list1=[1,2,3,4,5]
list2=list1.copy()
print(list2)
[1, 2, 3, 4, 5]
#翻转
list1=[1,2,3,4,5]
list1.reverse() #将列表翻转,列表实际发生了变化
print(list1)
[5, 4, 3, 2, 1]
#排序 注意:排序的列表中间只能是同类型的数据
#默认升序排列
list1=[1,2,3,4,5,1,6]
list1.sort() #排序,默认升序排列
print(list1)
[1, 1, 2, 3, 4, 5, 6]
#修改成降序排列
list1=[1,2,3,4,5,1,6]
list1.sort(reverse=True)
print(list1)
[6, 5, 4, 3, 2, 1, 1]