【Python从零到壹】Python列表详解
作者:互联网
文章目录
- 1. 获取指定的元素
- a) 切片操作
- b)查询操作
- c) 列表元素遍历
- a) 获取类表中的指定元素的索引
- b) 获取列表中的单个元素
- 2. 列表查询操作
- 3. 列表元素的增加操作
- 4. 列表元素的删除
- 5. 列表元素的修改
- 6. 列表的排序操作
- 7. 列表生成式
- 1.为什么要使用列表?
- 2. 列表的内存示意图讲解
- 3. 列表对象的创建
- 一. 列表的概念
- 二.列表的使用
- 总结
一. 列表的概念
1.为什么要使用列表?
我们都知道变量可以存储一个元素,而列表是一个大容器,可以存储N个元素,程序可以方便的对这些元素进行操作。
列表相当于其他语言中的数组,如果你没有了解过其他语言,这句话可以略过。
在Python中一切皆为对象,所以变量存储的就是一个对象的引用。
2. 列表的内存示意图讲解
列表示意图:
# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38a=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:38lst=['hello','world',38,'itlaoxin']print(lst.index('hello'))print(lst.index(38,1,4))
在索引为1-4里查找元素38,结果为2
b) 获取列表中的单个元素
# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=['hello','world',38,'itlaoxin','hello','world',234]print(lst[2]) #38print(lst[-3])#helloprint(lst[0]) #hello#print(lst[10]) #超出范围报错print(lst[-1]) #234
2. 列表查询操作
a) 切片操作
步长为正数的时候:
# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[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:38lst=[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:38lst=[1,2,3,4,5,6,7,8,9,]print(lst[::-1])
这种情况相当于取反
这种写法也可以:
# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[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:38lst=[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:38lst=[1,2,3]print("添加元素之前",lst,id(lst))lst.append(100)print('添加元素之后',lst,id(lst))
可以看到,ID是相同的,也就是没有生成新的列表
# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[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:38lst=[1,2,3]lst2=['hello','world']print(lst)lst.extend(lst2)print(lst)
insert() 是在任意位置上添加
# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3]lst.insert(2,90)print(lst)
切片也可以在任意位置添加元素
# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4]lst3=['hello','world','itlaoxin']lst[1:]=lst3 print(lst)
可以看到,它把索引1后面的都切掉了,然后把lst3添加到lst里了
切片实际上就是切掉一部分,用新的替换。
4. 列表元素的删除
remove()
一次删除一个元素,重复元素只删除第一个,元素不存在抛出valueerrorpop()
删除一个指定索引位置上的元素
指定锁定不抛出indexError
不指定索引,删除列表中的最后一个元素切片: 一次至少删除一个元素(切片会产生一个新的列表对象)
clear() 清空列表
del() 删除列表
# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4]lst.pop(2)print(lst) #[1, 2, 4]
# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4]#pop() 不指定索引删除最后一个lst.pop()print(lst)#[1, 2, 3]
清空列表
# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4]#clear() 清空列表lst.clear()print(lst)
删除列表
# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4]del lst print(lst)
删除后就没有了,打印会提示没有定义
5. 列表元素的修改
列表元素的修改:
- 为指定索引元素赋新值
- 为指定的切片赋予一个新值
# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4]#一次修改一个值lst[2]=100 print(lst)#[1, 2, 100, 4]
使用切片来替换
# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[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:38lst=[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:38lst=[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:38lst=[ i for i in range(1,10)]print(lst)
注意: 要想使用列表生成式,需要你生成的列表有一定的规则
比如列表中的元素的值为2,4,6,8,10
# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[ i*2 for i in range(1,6)]print(lst)
这种方式了解下就可以了。
总结
列表还是很重要的,在Python以后的学习中经常会用到。
标签:0003,Python,元素,列表,零到,lst,详解,2021,print 来源: https://blog.51cto.com/xinsz08/2690265