列表的高级操作

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没有对点击片段进行任何操作

JavaScript笔试题(js高级代码片段)

调试,高级--step into my code ,只调试自己写的代码,shux,各种step操作debug

Vue3官网-高级指南(十七)响应式计算`computed`和侦听`watchEffect`(onTrackonTriggeronInvalidate副作用的刷新时机`watch` pre)(代码片段

如何从片段内的列表视图打开链接网址?

如何使列表视图出现在片段中?