文章目录
- 一. 列表的概念
- 1.为什么要使用列表?
- 2. 列表的内存示意图讲解
- 3. 列表对象的创建
- 二.列表的使用
- 1. 获取指定的元素
- a) 获取类表中的指定元素的索引
- b) 获取列表中的单个元素
- 2. 列表查询操作
- a) 切片操作
- b)查询操作
- c) 列表元素遍历
- 3. 列表元素的增加操作
- 4. 列表元素的删除
- 5. 列表元素的修改
- 6. 列表的排序操作
- 7. 列表生成式
- 总结
一. 列表的概念
1.为什么要使用列表?
我们都知道变量可以存储一个元素,而列表是一个大容器,可以存储N个元素,程序可以方便的对这些元素进行操作。
列表相当于其他语言中的数组,如果你没有了解过其他语言,这句话可以略过。
在Python中一切皆为对象,所以变量存储的就是一个对象的引用。
2. 列表的内存示意图讲解
列表示意图:
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
a=20
lst=['hello','world',2021]
print(id(lst))
print(type(lst))
print(lst)
示意图:
假如一个列表是lst=[hello,world,100,20] 4个元素
3. 列表对象的创建
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
#c创建列表的第一种方式
lst=['hello','world']
#创建列表的第二种方式,使用内置函数list()
lis2=list(['hello','world'])
列表的特点:
- 列表元素按照有序排序
- 索引映射唯一一个数据
- 列表可以重复存储数据
- 任意数据类型混存
- 根据需要动态分配和回收内存
二.列表的使用
1. 获取指定的元素
a) 获取类表中的指定元素的索引
根据索引获取指定的元素
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=['hello','world',38,'itlaoxin']
print(lst.index('hello'))
print(lst.index(38,1,4))
在索引为1-4里查找元素38,结果为2
b) 获取列表中的单个元素
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=['hello','world',38,'itlaoxin','hello','world',234]
print(lst[2]) #38
print(lst[-3])#hello
print(lst[0]) #hello
#print(lst[10]) #超出范围报错
print(lst[-1]) #234
2. 列表查询操作
a) 切片操作
步长为正数的时候:
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3,4,5,6,7,8,9,]
print(lst[1:6:1]) #[2, 3, 4, 5, 6]
lst[1:6:1] 表示: 从索引1开始到索引6结束,步长为1,一般默认步长为1
其他写法:
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3,4,5,6,7,8,9,]
print(lst[1:6:1]) #[2, 3, 4, 5, 6]
print(lst[1:6])
print(lst[1:6:])
print(lst[1:6:2])
print(lst[:6:2])
结果:
步长为负数的情况
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3,4,5,6,7,8,9,]
print(lst[::-1])
这种情况相当于取反
这种写法也可以:
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3,4,5,6,7,8,9,]
print(lst[8::-1]) #[9, 8, 7, 6, 5, 4, 3, 2, 1]
b)查询操作
判断指定元素是否在列表中存在
- 元素in 列表名
- 元素 not in 列表名
c) 列表元素遍历
for 可迭代变量 in 列表
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3,4,5,6,7,8,9,]
for item in lst:
print(item)
3. 列表元素的增加操作
列表元素的增加操作:
append() 在列表末尾加一个元素
extend() 在列表末尾添加一个元素
insert() 在列表的任意位置添加一个元素
切片: 在列表的任意位置添加一个元素
append()
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3]
print("添加元素之前",lst,id(lst))
lst.append(100)
print('添加元素之后',lst,id(lst))
可以看到,ID是相同的,也就是没有生成新的列表
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3]
print("添加元素之前",lst,id(lst))
lst.append(100)
print('添加元素之后',lst,id(lst))
lst2=['hello','world']
lst.append(lst2)
print(lst)
输出:
可以看到这里,将lst2作为一个元素添加到末尾
extend()
这个是扩展
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3]
lst2=['hello','world']
print(lst)
lst.extend(lst2)
print(lst)
insert() 是在任意位置上添加
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3]
lst.insert(2,90)
print(lst)
切片也可以在任意位置添加元素
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3,4]
lst3=['hello','world','itlaoxin']
lst[1:]=lst3
print(lst)
可以看到,它把索引1后面的都切掉了,然后把lst3添加到lst里了
切片实际上就是切掉一部分,用新的替换。
4. 列表元素的删除
- remove()
一次删除一个元素,重复元素只删除第一个,元素不存在抛出valueerror - pop()
删除一个指定索引位置上的元素
指定锁定不抛出indexError
不指定索引,删除列表中的最后一个元素 - 切片: 一次至少删除一个元素(切片会产生一个新的列表对象)
- clear() 清空列表
- del() 删除列表
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3,4]
lst.pop(2)
print(lst) #[1, 2, 4]
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3,4]
#pop() 不指定索引删除最后一个
lst.pop()
print(lst)#[1, 2, 3]
清空列表
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3,4]
#clear() 清空列表
lst.clear()
print(lst)
删除列表
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3,4]
del lst
print(lst)
删除后就没有了,打印会提示没有定义
5. 列表元素的修改
列表元素的修改:
- 为指定索引元素赋新值
- 为指定的切片赋予一个新值
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3,4]
#一次修改一个值
lst[2]=100
print(lst)#[1, 2, 100, 4]
使用切片来替换
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3,4]
lst[1:3]=[30,40,50,60]
print(lst)
这个就是把2和3去掉,然后用30,40,50,60 代替
6. 列表的排序操作
两种方法:
- 调用sort()方法,列表中所有的元素默认按照从小到大的顺序来排序,可以指定reverse=True 进行降序排序
- 调用内置函数 sorted() ,可以指定reverse=True进行降序排序,原列表不发生改变。此方法会产生一个新的列表对象
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3,4,88,77,5,46]
print('排序前的列表',lst)
lst.sort()
print('排序后的列表',lst)
lst.sort(reverse=True)
print('降序排序',lst)
使用sorted() 会产生一个新列表
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[1,2,3,4,88,77,5,46]
print('排序前的列表',lst)
newlst=sorted(lst)
print(lst)
print(newlst)
两个区别就是: sort()是对原列表进行操作,sorted()是生成新列表
7. 列表生成式
列表生成式,就是列表生成的公式
语法: ii for i in range(1,10)
ii 表示列表元素的表达式
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[ i for i in range(1,10)]
print(lst)
注意: 要想使用列表生成式,需要你生成的列表有一定的规则
比如列表中的元素的值为2,4,6,8,10
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
lst=[ i*2 for i in range(1,6)]
print(lst)
这种方式了解下就可以了。
总结
列表还是很重要的,在Python以后的学习中经常会用到。