列表相当于其它语言中的数组
lst = ['hello', 'world', 98] print(id(lst))#1868570574784 print(type(lst))#列表的创建print(lst)#['hello', 'world', 98]
- 使用中括号
- 使用内置函数list()
lst = list(['hello', 'world', 98])列表的特点
-
按顺序有序排序
-
索引映射唯一一个数据(类似于数组的下标)
-
可以按照0,1, 2……索引
-
可以负数索引
lst = list(['hello', 'world', 98]) print(lst[2])#98 print(lst[-1])#98
-
-
可以存储重复数据
-
任意数据类型混存
-
根据需要动态分配和回收内存
lst = list(['hello', 'world', 98, 'hello']) print(lst.index['hello'])#如果列表中有相同元素只返回列表中相同元素的第一个元素的索引 print(lst.index('hello',1,3))#在索引为1的到索引为2的范围内查找元素索引获取列表中的单个元素
#正向索引0到N-1 lst = list(['hello', 'world', 98, 'hello', 'world',234]) print(lst[2])#98 #逆向索引-N到-1 print(lst[-3])#hello获取列表中的多个元素
语法格式 列表名[start:stop:step]切片 *** 作
-
切片结果:对原列表片段的拷贝
lst = [10, 20, 30, 40, 50, 60, 70, 80] print('原列表:', id(lst))#原列表: 1705134473152 lst2 = lst[1:6:1] print('切的片段:', id(lst2))#切的片段: 1705179563904
-
切片的范围:[start : stop]
-
step的默认值为1:可以简写为[start : stop :]
-
step为正数:
#不写start默认从0开始 print(lst[:6:1])#[10, 20, 30, 40, 50, 60] #不写stop默认读取到最后 print(lst[1::1])#[20, 30, 40, 50, 60, 70, 80]
-
step为负数:向前读取
#不写start和stop,步长为-1时,列表逆序输出 print(lst[::-1])#[80, 70, 60, 50, 40, 30, 20, 10]
判断
元素 in 列表名 元素 not in 列表名
遍历
for 迭代变量 in 列表名: #lst = [10,100,'hello'] for item in lst: print(itme) '''输出结果: 10 100 hello '''列表的增删改 增加
---------------------append()----------------------- lst = [10, 20, 30] print("添加前:", lst)#添加前: [10, 20, 30] lst.append(100) print("添加后:", lst)#添加后: [10, 20, 30, 100] lst2 = ['hello', 'world'] lst.append(lst2) #将lst2作为一个整体添加到lst中 print(lst)#[10, 20, 30, 100, ['hello', 'world']] ---------------------extend()----------------------- #将lst2中的元素添加到lst中 lst.extend(lst2) print(lst)#[10, 20, 30, 100, 'hello', 'world'] ---------------------insert()----------------------- #在任意位置上添加元素 lst.insert(1,90) print(lst)#[10, 90, 20, 30, 100, 'hello', 'world'] ---------------------切片----------------------- lst3 = [True, False, 'hello'] lst[1:]=lst3 print(lst)#[10, True, False, 'hello']删除
---------------------remove()----------------------- lst = [10, 20, 30, 40, 50, 60, 30] lst.remove(30)#从列表中移除一个元素,如果有重复元素只移除第一个 print(lst)#[10, 20, 40, 50, 60, 30] ---------------------pop()----------------------- #pop()根据索引移除元素 lst.pop(1) print(lst)#[10, 40, 50, 60, 30] lst.pop() print(lst)#[10, 40, 50, 60] ---------------------切片----------------------- #切片 *** 作会产生一个新列表且原列表内容不改变 new_lst = lst[1:3] print(new_lst)#[40, 50] print(lst)#[10, 40, 50, 60] #使用切片删除元素,且作用在原列表 lst[1:3] = []#将下标1~2的元素用空列表代替 print(lst)修改
-
为指定索引元素赋一个新值
lst[索引] = 值
-
为指定的切片赋一个新值
print(lst)#[10, 40, 50, 60] #将索引1~2的用100, 200, 300, 400替换掉 lst[1:3] = [100, 200, 300, 400] print(lst)#[10, 100, 200, 300, 400, 60]
-
调用sort()方法,默认从小到大排序,指定reverse=True进行降序排序
lst = [20, 40, 10, 98, 54] print('排序前的列表:', lst)#排序前的列表: [20, 40, 10, 98, 54] lst.sort() print('排序后的列表:', lst)#排序后的列表: [10, 20, 40, 54, 98] #使用关键字 lst.sort(reverse=True) print(lst)#[98, 54, 40, 20, 10]
-
调用内置函数sorted(),可以指定reverse=True进行降序排序,原列表不发生改变
lst = [20, 40, 10, 98, 54] new_lst = sorted(lst) print('lst:', lst)#lst: [20, 40, 10, 98, 54] print('new_lst:', new_lst)#new_lst: [10, 20, 40, 54, 98] desc_lst = sorted(lst, reverse=True) print('desc_lst:', desc_lst)#desc_lst: [98, 54, 40, 20, 10]
lst = [i for i in range(1, 10)]#[1, 2, 3, 4, 5, 6, 7, 8, 9]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)