列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型。列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
一、列表特点
1.列表元素按顺序有序排列
2.索引映射唯一的数据(获取元素)下标0开始(正向索引),下标从-1开始(逆向索引)
3.列表可以存储重复的数据,任意数据类型可以混存。
4.根据需要动态分配内存于回收内存
二、查询列表元素
index()函数
lst = ['hello', 'word', 892.5, 85, 85]
print(lst.index('hello',1,3))#在列表下标1—3之间查询
0
【注】1.如果列表中有N个重复元素,只返回第一次出现元素的下标值。
2. 如果没有找到列表中的元素;返回:Value Error
三、**切片(获取多个元素)
1.列表名.[start:stop:step]; start:切点;stop:结点;step:步长;
2.特点:原列表片段的拷贝;切片的范围[start,stop);step步长默认为1
3.
step为正数 | step为负数 | ||
[ :stop:step] | 切片第一个元素默认为列表第一个元素 | [ :stop:step] | 切片第一个元素默认为列表最后一个元素 |
[start: :step] | 切片最后一个元素默认为列表最后一个元素 | [start: :step] | 切片最后一个元素默认为列表第一个元素 |
step为正数
<1>.[ :stop:step]
lst = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(lst[:3:1])
[10,20,30]
<2>.[start ::step]
lst = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(lst[1::2])
[20,40,60,80]
step为负数
<1>[ :stop:step]
lst = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(lst[:4:-1])
[90,80,70,60]
<2>.[start ::step]
lst = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(lst[6::-2])
[70,50,30,10]
四、列表元素存在
in 或 not in检测
lst = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(90 in lst)
print(100 not in lst)
True
True
五、列表元素增加
append( ) | 在列表末位添加一个元素 |
extend( ) | 末尾至少添加一个元素 |
insert( ) | 任意位置添加一个元素 |
切片 | 任意位置添加至少一个元素(切 去指定位置新列表替换) |
1.append( )
lst = [10, 20, 30]
lst.append(155)
print(lst)
[10,20,30,155]
2.extend( )
lst = [10, 20, 30]
num = [100,999]
lst.extend(num)
print(lst)
[10,20,30,100,999]
3. insert( )
lst = [10, 20, 30]
lst.insert(1,456)
print(lst)
[10,245,60,30]
4.切片
lst = [10, 20, 30]
num = ['hello','word']
lst[1:] = num #lst列表从下标1的位置开始被num列表替换
print(lst)
[10, 'hello', 'word']
六、列表元素的删除
1.remove( )函数;一次删除一个元素;重复的元素只删除第一次出现的元素;元素不存在时,返回Value Error;
lst = [10, 20, 30,10]
lst.remove(10)
print(lst)
[20,30,10]
2.pop()函数;删除索引位置的元素;未找到索引位置的元素时,返回Value Error;如果没有指定索引位置时,默认删除列表的最后一个元素;
lst = [10, 20, 30,55]
lst.pop(1)
print(lst)
lst.pop()
print(lst)
[10,30,55]
[10,30]
3.切片操作;一次至少删除一个元素;会产生一个新的列表;用一个空列表就不会产生新列表;
lst = [10, 20, 30,55]
new_lst = lst[1:3]
print(new_lst)
[20,30]
lst = [10, 20, 30,55]
lst[1:3] = []
print(lst)
[10,55]
4.clear( )函数;清空列表
lst = [10, 20, 30,55]
lst.clear()
print(lst)
[ ]
5.del函数;删除列表;
lst = [10, 20, 30,55]
del lst
七、修改列表元素
1.单个元素的修改
lst = [10, 20, 30,55]
lst[2] = 456
print(lst)
[10,456,30,55]
2.多个元素修改
lst = [10, 20, 30,55]
lst[1:3] = [100,200,300]
print(lst)
[10, 100, 200, 300, 55]
八、列表元素排序
sort()函数;默认升序 | sorted()函数;默认升序 | ||||
列表名.sort(reverse = True) | 降序 | 不会产生新列表 | sorted(列表名,reverse = True) | 降序 | 会产生新列表 |
列表名.sort(reverse = False) | 升序 | sorted(列表名,reverse = Flase) | 升序 |
num = [10,56,98,87,56,42]
num.sort()
print(num)
num.sort(reverse = True)
print(num)
[10, 42, 56, 56, 87, 98]
[98, 87, 56, 56, 42, 10]
num = [10,56,98,87,56,42]
new_num = sorted(num)
print(new_num)
new_num = sorted(num,reverse = True)
print(new_num)
[10, 42, 56, 56, 87, 98]
[98, 87, 56, 56, 42, 10]
九、列表生成式
tu = [i for i in range(1,11)]
print(tu)
new_tu = [i*2 for i in range(1,6)]
print(new_tu)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 4, 6, 8, 10]
hello!
选择就要坚持下去;永不放弃!
--上善如水 ^0^