吐血总结Python 【列表】知识点
时间:2020-05-29
本文章向大家介绍吐血总结Python 【列表】知识点 ,主要包括吐血总结Python 【列表】知识点 使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
列表
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可
先来介绍一波常用的功能:
list01 = ['runoob', 786, 2.23, 'john', 70.2] list02 = [123, 'john'] print list01 print list02 # 列表截取 print list01[0] print list01[-1] print list01[0:3] # 列表重复 print list01 * 2 # 列表组合 print list01 + list02 # 获取列表长度 print len(list01) # 删除列表元素 del list02[0] print list02 # 元素是否存在于列表中 print 'john' in list02 # True # 迭代 for i in list01: print i # 比较两个列表的元素 print cmp(list01, list02) # 列表最大/最小值 print max([0, 1, 2, 3, 4]) print min([0, 1]) # 将元组转换为列表 aTuple = (1,2,3,4) list03 = list(aTuple) print list03 # 在列表末尾添加新的元素 list03.append(5) print list03 # 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) list03.extend(list01) print list03 # 统计某个元素在列表中出现的次数 print list03.count(1) # 从列表中找出某个值第一个匹配项的索引位置 print list03.index('john') # 将对象插入列表 list03.insert(0, 'hello') print list03 # 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 print list03.pop(0) print list03 # 移除列表中某个值的第一个匹配项 list03.remove(1) print list03 # 反向列表中元素 list03.reverse() print list03 # 对原列表进行排序 list03.sort() print list03
常见的问题
1、
列表里 a 与 a[:] 不同。
我们可以通过函数 id() 来查看:
会发现得到的两个值不同。
简单来说,a[:] 是创建 a 的一个副本,这样我们在代码中对 a[:] 进行操作后,就不会改变 a 的值了。而若直接对 a 进行操作,那么 a 的值会收到一些操作的影响,如 append() 等。
2、
列表解析 List Comprehensions
表达式:[expression for iter_val in iterable if cond_expr] [expression]:最后执行的结果 [for iter_val in iterable]:这个可以是一个多层循环 [if cond_expr]:两个for间是不能有判断语句的,判断语句只能在最后;顺序不定,默认是左到右。
3、
>>> list4=[123,["das","aaa"],234] >>> list4 >>> "aaa" in list4 #in只能判断一个层次的元素 False >>> "aaa" in list4[1] #选中列表中的列表进行判断 True >>> list4[1][1] 'aaa'
高阶学习
列表和元组的区别是显然的:列表是动态的,其大小可以该标;而元组是不可变的,一旦创建就不能修改。
从细节上看,Python中的列表是由对其它对象的引用组成的连续数组。指向这个数组的指针及其长度被保存在一个列表头结构中。这意味着,每次添加或删除一个元素时,由引用组成的数组需要该标大小(重新分配)。
不幸的是,在普通链表上“代价很小”的其它一些操作在Python中计算复杂度相对过高。
- 利用 list.insert方法在任意位置插入一个元素——复杂度O(N)
- 利用 list.delete或del删除一个元素——复杂度O(N)
列表和元组
列表和元组的区别是显然的:
列表是动态的,其大小可以该标 (重新分配);
而元组是不可变的,一旦创建就不能修改。
实际上 列表里面的元素可以是任意的对象,并且列表中维护了一个指针数组,每个指针指向不同的对象。
相关文档
深入 Python 列表的内部实现:http://python.jobbole.com/82549/
[python]list, tuple, dictionary, set的底层细节:https://blog.csdn.net/siyue0211/article/details/80560783
Python列表:初学者应该懂得操作和内部实现:https://mp.weixin.qq.com/s/IkFak4iYYqW7u61P7eu22g
python学习笔记 – list内部实现:https://www.jianshu.com/p/cd75475168ae
从底层理解Python的执行:https://www.csdn.net/article/2015-05-28/2824795
原文地址:https://www.cnblogs.com/jackson669/p/12988679.html
- 1634: [Usaco2007 Jan]Protecting the Flowers 护花
- C#用链式方法表达循环嵌套1
- C#用链式方法表达循环嵌套2
- 【开源】1句代码搞定图片批量上传,无需什么代码功底【无语言界限】
- C#异步调用的方法
- 【David Silver 深度强化学习教程代码实战07】 DQN的实现
- AutoMapper随笔记
- 简析.NET Core 以及与 .NET Framework的关系
- 1627: [Usaco2007 Dec]穿越泥地
- 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚
- 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
- Polyspace不认识Interrupt,肿么办?
- 1639: [Usaco2007 Mar]Monthly Expense 月度开支
- 1638: [Usaco2007 Mar]Cow Traffic 奶牛交通
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux工具---ipcalc简单的IP地址计算器
- 七、玩转Git三剑客-使用GitHub进行团队协作
- 关于mysql的join
- 微信公众号接入智能聊天机器人
- SAP UI5 Diagnostics工具里一个使用面向切片编程(AOP)的一个例子
- SAP CDS view自学教程之九:cube view和query view的实现原理
- 一点多发FTP客户端设计
- VS2017中使用CppSQLite报出编译器错误C2440
- Windows 必知命令
- MATLAB批量读取一个文件夹下的图片
- python next()迭代器完成会引发StopIteration异常
- 没想到,Git居然有3种“后悔药”!
- JetCache埋点的骚操作,不服不行啊
- StringBuider 在什么条件下、如何使用效率更高?
- SpringCache与redis集成,优雅的缓存解决方案