目录
一、列表的创建
1、使用中括号
2、使用中括号和内置函数list()
二、列表的特点
三、获取列表中元素
1、获取列表中指定元素的索引-index()
2、获取列表中单个元素
3、获取列表中多个元素-切片
四、列表元素的查询和遍历
1、判断指定元素在列表中是否存在
2、遍历
五、列表元素的增删改
1、增加操作
2、删除操作
3、修改操作
六、列表的排序
1、调用sort()方法
2、调用内置函数sorted()
七、列表生成式
一、列表的创建
1、使用中括号
lst = ['hello', 'world', 98]
2、使用中括号和内置函数list()
lst = list(['hello', 'world', 98])
内部:
二、列表的特点
- 列表元素按顺序有序排序
- 索引映射唯一个数据
- 列表可以存储重复数据
- 任意数据类型混存
- 根据需要动态分配和回收内存
三、获取列表中元素
1、获取列表中指定元素的索引-index()
lst = ['hel1o','world',98,'hel1o']
print(lst.index('hello'))#如果列表中有相同元素只返回列表中相同元素的第一个元素的索引
print(lst.index('Python'))#ValueError:'Python'is not in list
print(lst.index('hello',1,3))#ValueError:hello'is not in list 'world',98
- 如查列表中存在N个相同元素,只返回相同元素中的第一个元素的索引
- 如果查询的元素在列表中不存在,则会抛出ValueError
- 还可以在指定的starti和stop之间进行查找
2、获取列表中单个元素
- 正向索引从0到N-1 举例:Ist[0]
- 逆向索引从-N到-1 举例:Ist[-N]
- 指定索引不存在,抛出IndexError
lst = ['hello', 'world', 98]
print(lst[0], lst[-3]) # 结果:hello hello
3、获取列表中多个元素-切片
steps:步长(每隔steps-1个数据进行截取,2则表示每隔1个数进行截取,1则表示每隔0个数进行截取)
steps的正负号表示截取的方向(正表示从start开始向前截取,负表示从start开始向后截取)
每隔0个进行截取,所以连续
每隔0个进行截取,所以连续
情况举例------>
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(lst[1:4:1])#[1, 2, 3]
print(lst[1:6:2])#[1, 3, 5]
print(lst[1:4])#[1, 2, 3]
print(lst[:4:1])#[0, 1, 2, 3]
print(lst[1::1])#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(lst[:-3:-1])#[10, 9]
print(lst[-1::-1])#[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
四、列表元素的查询和遍历
1、判断指定元素在列表中是否存在
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(2 in lst)#True
print(2 not in lst)#False
2、遍历
五、列表元素的增删改
1、增加操作
append(),extend(),insert() ------>
lst1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lst2 =["wy","hello"]
lst1.append(100)
print("append",lst1)#append [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100]
lst1.append(lst2)
print("append",lst1)#append [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, ['wy', 'hello']]
lst1.extend(lst2)
print("extend",lst1)#extend [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, ['wy', 'hello'], 'wy', 'hello']
lst2.insert(1,"insert")
print("insert",lst2)#insert ['wy', 'insert', 'hello']
切片------>
lst1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lst2 =["wy","hello"]
#在任意位置添加N多个元素
print("lst1[1:]",lst1[1:])#lst1[1:] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lst1[1:] = lst2
#解释上一行:选中为lst1从1到最后,步长为1,这部分变成了lst2
print("切片",lst1) #切片 [0, 'wy', 'hello']
2、删除操作
remove()------>
lst = [1, 2, 3, 2, 4, 5, 6, 7, 8, 9, 10]
lst.remove(2)
print(lst)
#[1, 3, 2, 4, 5, 6, 7, 8, 9, 10]
pop()------>
lst = [1, 2, 3, 2, 4, 5, 6, 7, 8, 9, 10]
lst.pop(2)
print(lst)
#[1, 2, 2, 4, 5, 6, 7, 8, 9, 10]
切片------>
lst = [1, 2, 3, 2, 4, 5, 6, 7, 8, 9, 10]
lst[1:4] = []
print(lst)
#[1, 4, 5, 6, 7, 8, 9, 10]
clear()------>
lst = [1, 2, 3, 2, 4, 5, 6, 7, 8, 9, 10]
lst.clear()
print(lst)
#[]
del------>
lst = [1, 2, 3, 2, 4, 5, 6, 7, 8, 9, 10]
#将列表对象删除
del lst
print(lst)
#NameError: name 'lst' is not defined
3、修改操作
(1)为指定索引的元素赋予一个新
lst1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lst1[0] = 20
print(lst1)
#[20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
(2)为指定的切片赋予一个新值(就是增加中的切片操作)
lst1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lst1[1:4:1] = ["hello",33,77,"x"]
print(lst1)
#[0, 'hello', 33, 77, 'x', 4, 5, 6, 7, 8, 9, 10]
六、列表的排序
1、调用sort()方法
调用sort()方法,列有中的所有元素默认按照从小到大的顺序进行排序,可以指定
reverse=True,进行降序排序
lst1 = [0, 1, 3, 4, 2, 7, 8, 9, 10, 5, 6]
lst1.sort()#升序,不指定默认False
print(lst1)
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lst1.sort(reverse=True)#降序
print(lst1)
#[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
2、调用内置函数sorted()
调用内置函数sorted(),可以指定reverse=True,进行降序排序,原列表不发生改变
lst1 = [0, 1, 3, 4, 2, 7, 8, 9, 10, 5, 6]
new_lst1 = sorted(lst1)
de_lst1 = sorted(lst1,reverse=True)
#原列表不发生改变
print(lst1)
#[0, 1, 3, 4, 2, 7, 8, 9, 10, 5, 6]
print(new_lst1)
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(de_lst1)
#[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
七、列表生成式
lst = [i*i for i in range(1,10)]
print(lst)
#[1, 4, 9, 16, 25, 36, 49, 64, 81]