列表的高级操作
Posted chenliang0309
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列表的高级操作相关的知识,希望对你有一定的参考价值。
1 再说列表
列表是什么?
列表是python中的一种组合数据类型
什么是列表
需要在一个变量中统一整理存储多个可以重复数据的情况下
列表的作用
可以统一管理多个数据
怎么操作列表?
列表的声明
a = list()
a = []
列表的数据处理
增删改查【遍历】
insert 指定位置增加一个数据
append 末尾追加一个数据
extend 拼接两个列表
pop 如果没有指定下标,则默认会删除最后一个元素
remove 指定删除某个数据
clear 清空所有数据
index 列表数据的索引
del 根据索引删除数据
reverse 列表反转
sort 按照ascii码对列表进行排序
列表的使用缺陷
列表中直接存储数据,但是如果列表中的数据较多的话,可能会比较消耗内存【列表数据项较多、内存消耗较多】
2 列表推导式
简单推导式
my_list = [x for x in range(0, 1000)]
生成一个包含0~999自然数序列的列表
运算推导式
my_list = [x**2 for x in range(0, 100)]
生成一个包含0~99平方序列的列表
条件推导式
my_list = [x for x in range(0, 100) if x % 2 == 0]
组合推导式
my_list = [x + y for x in range(0, 5) for y in range(0, 10)]
生成一个0~4,和0~9二维数据排列相加的和的列表
3 列表生成器
生成器语法结构和推导式语法结构及其类似
一个基本生成器:生成一个0~10自然数序列的数据
my_generator = (x for x in range(0, 10))
直接展示就是一个生成器对象
生成器对象必须通过系统内奸函数next()来获取生成器下一个数据
生成器的优异性能在于使用的时候才会运算下一个数据,而不会一次将数据全部加载
4 循环遍历和迭代器
在程序中,我们经常会遇到这样一些对象,通过for循环可以直接循环迭代
python中提供了一个工具对象:迭代器对象collections.Iterable
该对象的__iter__()
函数可以得到一个可迭代对象:collections.Iterator
list只是一个类型,所以既不是迭代器对象,也不是可迭代对象
一个具体存在的 list对象是迭代器对象,可以被for循环操作,操作过程中会产生可迭代对象,对迭代的数据进行索引
5 生成器和推导式的区别
- 推导式:使用泪飙的运行前,得到完整列表;生成器使用列表运行时,得到下一个 列表元素
- 生成器是将推导式的语法方括号改为圆括号
- 推导式生成一个列表[list],包含具体元素数据,可以利用索引下标获取对应数据数据量较大时,运算消耗时间多,消耗内存多;生成器生成一个对象[generator],包含运算规则
next()/__next__()
来获取数据,和数据量大小无关
6 生成器和迭代器的区别
生成器主要时定义了一个数据的生成规则,通过运行时算法得到类似列表数据的一种特殊对象
迭代器是用于循环遍历可迭代数据的一个特殊对象,包含了迭代对象和迭代过程
联系:生成器对象就是一种可迭代对象,可以被迭代器遍历。
以上是关于列表的高级操作的主要内容,如果未能解决你的问题,请参考以下文章
setOnItemClickListener没有对点击片段进行任何操作
调试,高级--step into my code ,只调试自己写的代码,shux,各种step操作debug
Vue3官网-高级指南(十七)响应式计算`computed`和侦听`watchEffect`(onTrackonTriggeronInvalidate副作用的刷新时机`watch` pre)(代码片段