码迷,mamicode.com
首页 > 其他好文 > 详细

列表的高级操作

时间:2018-10-17 15:42:07      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:获取   iterable   自然数   数据排列   区别   统一   声明   app   ons   

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 生成器和迭代器的区别

生成器主要时定义了一个数据的生成规则,通过运行时算法得到类似列表数据的一种特殊对象
迭代器是用于循环遍历可迭代数据的一个特殊对象,包含了迭代对象和迭代过程
联系:生成器对象就是一种可迭代对象,可以被迭代器遍历。

列表的高级操作

标签:获取   iterable   自然数   数据排列   区别   统一   声明   app   ons   

原文地址:https://www.cnblogs.com/chenliang0309/p/9804358.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!