python笔记
1、列表list[ ]
1.1 列表特点:
- 有序
- 可以存重复数据
- 通过索引可以定位唯一的元素,可以往右0开始+1顺序递增索引,也可以往左0-1开始递减索引
- 任意数据类型都可以存储
1.2 索引列表中的单个元素
index()方法
- 重复数据索引时只按顺序返回一个数据
- 如果索引的内容不在列表中,会报错
1.3 索引列表中的多个元素
- 切片操作:[start:stop:step]
- 切片范围:[开始,结束),索引步长为step,步长也可以是负数
- 省略start时默认从0开始
- 如果stop和step都不写是一直到最后,步长默认1
# 列表多个元素的索引:切片练习
l1=['hello','stop',99,"hello"]
print("原列表:",l1)
print("切片后的列表:",l1[0:2:1])
print(l1[:2:1]) # 省略start数据时默认从0开始
#输出
原列表: ['hello', 'stop', 99, 'hello']
切片后的列表: ['hello', 'stop']
['hello', 'stop']
1.3 列表元素的遍历
- 就是将列表中的元素依次输出
# 列表的遍历:将列表中的元素依次输出
l1=['hello','stop',99,"hello"]
for l2 in l1:
print(l2)
1.4 列表的增加操作
- append():在列表的末尾添加一个元素
- extend():在列表的末尾可以添加多个元素
- insert():在列表的任意位置添加一个元素
- 切片:在列表的任意位置添加多个元素
# 列表的添加操作
l1=["hello","ayh",99,"soa"]
l1.append(188) #append只能在列表末尾添加一个元素,哪怕添加的是列表也会当成一个元素
print("添加后:",l1)
#输出
添加后: ['hello', 'ayh', 99, 'soa', 188]
l1=["hello","ayh",99,"soa"]
l2=["sss",999]
l1.extend(l2) #extend可以在列表末尾添加多个元素
print("添加后:",l1)
#输出
添加后: ['hello', 'ayh', 99, 'soa', 'sss', 999]
l1=["hello","ayh",99,"soa"]
l1.insert(1,90) #insert是在1的索引位置添加元素90
print(l1)
#输出
['hello', 90, 'ayh', 99, 'soa']
l1=["hello","ayh",99,"soa"]
l2=["sss",999]
l1[1:]=l2 #把l2的元素赋值替换掉l1切片的范围
print(l1)
#输出
l1=["hello","ayh",99,"soa"]
l2=["sss",999]
l1[1:]=l2 #把l2的元素赋值替换掉l1切片的范围
print(l1)
1.5 列表的删除操作
- remove():一次只能删除一个元素,如果有重复的只按顺序删第一个,元素不存在的时候报错
- pop():删除一个指定索引位置上的元素,元素不存在的时候报错,不指定索引的时候默认删最后一个
- 切片:仅保留切片后的元素数据
- clear():清空列表元素
- del:删除列表对象,清空后输出列表对象会报错
# 列表的删除操作
l1=["hello","ayh",99,"soa",99]
l1.remove(99) #remove一次只能删除一个元素,有重复元素的按顺序只删除第一个
print(l1)
#输出
['hello', 'ayh', 'soa', 99]
l1=["hello","ayh",99,"soa",99]
l1.pop(0) #pop删除一个指定索引位置的元素
print(l1)
l1=["hello","ayh",99,"soa",99]
l1.pop() #如果不指定索引位置,默认删除最后一个元素
print(l1)
#输出
['ayh', 99, 'soa', 99]
['hello', 'ayh', 99, 'soa']
l1=["hello","ayh",99,"soa"]
print("切片后的列表:",l1[1:3:1]) #切片保留元素,间接删除操作
#输出
切片后的列表: ['ayh', 99]
l1=["hello","ayh",99,"soa"]
l1.clear() #clear清空列表元素
print(l1)
l1=["hello","ayh",99,"soa"]
del l1 #删除列表对象,删除后再打印输出列表会报错
print(l1)
#输出
[]
Traceback (most recent call last):
File "<input>", line 6, in <module>
NameError: name 'l1' is not defined
1.6 列表的修改操作
# 列表的修改
l1=["hello","ayh",99,"soa"]
l1[1]="word" #把索引1位置的元素替换成“word”
print(l1)
l1=["hello","ayh",99,"soa"]
l1[1:3:1]=[20,90,10] #切片更换元素
print(l1)
1.7 列表的排序
- sort():默认升序,降序用sort(reverse=True),改变原列表顺序
- sorted():只展示排序,不改变原列表顺序
# 列表的排序
l1=[90,12,54,23,100]
l1.sort() #默认升序排序
print(l1)
#输出
[12, 23, 54, 90, 100]
l1=[90,12,54,23,100]
l1.sort(reverse=True) #降序
print(l1)
l1.sort(reverse=False) #升序
print(l1)
#输出
[100, 90, 54, 23, 12]
[12, 23, 54, 90, 100]
l1=[90,12,54,23,100]
print(sorted(l1)) #只展示排序,不改变实际l1顺序
print(l1)
#输出
[12, 23, 54, 90, 100]
[90, 12, 54, 23, 100]