Python数据结构之列表、元组及字典
一位大牛Niklaus Wirth曾有一本书,名为《Algorithms+Data Structures=Programs》,翻译过来也就是算法+数据结构=程序。而本文就是介绍一下Python中内建的三种数据结构----列表、元组以及字典。
列表
列表
是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目。
1.list函数
因为字符串不能像列表一样被修改,所以有时候根据字符串创建列表就很有用了,list可以实现这个操作:
>>>list("Hello")
['H','e'.'l'.'l'.'o']
PS:可以用一下方法将一个由字符组成的列表转换为字符串:
''.join(list)
list为要转换的列表名。
2.基本的列表操作
- 改变列表
>>>x = [1,1,1]
>>>x[1] = 2
>>>x
[1,2,1]
- 删除元素
>>>names = ['Void','Alice','Jack']
>>>del names[2]
>>>names
['Void','Jack']
- 分片赋值
>>>name = list('Perl')
>>>name
['P','e','r','l']
>>>name[2:] = list('ar')
>>>name
['P','e','a','r']
3.列表方法
- append
append方法用于在列表末尾追加新的对象:
>>>list = [1,2,3]
>>>list.append(4)
>>>list
[1,2,3.4]
- count
count用于统计某个元素在列表出现的次数:
>>>x = [[1,2],1,1]
>>>x.count(1)
2
- extend
extend方法可以在列表的末尾一次性追加另一个序列中的多个值。换句话说,可以用新列表扩展原有的列表:
>>>a = [1,2,3]
>>>b = [4,5]
>>>a.extend(b)
>>>a
[1,2,3,4,5]
- index
index方法用于从列表中找出某个值第一个匹配项的索引位置:
>>>a = ['Love','for','good']
>>>a.index('good')
3
- insert
insert方法用于将对象插入到列表中:
>>>a = [1,2,3]
>>>a.insert(1,'four')
>>>a
[1,'four',2,3]
- pop
pop方法会移除列表中的一个元素(默认是最后一个),并且返回该元素的值:
>>>x = [1,2,3]
>>>x.pop()
3
>>>x
[1,2]
- remove
remove用于移除列表中某个值的第一个匹配项:
>>>x = ['to','be','or','not','to','be']
>>>x.remove('be')
>>>x
['to','or','not','to','be']
- reverse
reverse方法将列表中的元素反向存放:
>>>x = [1,2.3]
>>>x.reverse()
>>>x
[3,2,1]
- sort
sort方法用于在原位置对列表进行排序:
>>>x = [4,6,2,1,7,9]
>>>x.sort()
>>>x
[1,2,4,6,7,9]
元组
元组和列表的主要区别在于:列表可以修改,元组则不能。也就是说,如果根据需求来添加元素,那么列表可能会更加好用,而出于某些原因,序列不能修改的时候,使用元组则更加合适。
创建元组的方法很简单,只需用逗号分隔开一些值,那么你就自动创建了元组。
>>>1,2,3
(1,2,3)
PS:那么你想知道如何实现一个值的元组么?你可以猜一下,方法很奇特-必须有一个逗号,哪怕只有一个值:
>>>43,
(43)
>>>43
43
1.tuple函数
tuple函数的功能与list基本上是一样的:以一个序列作为参数并把它转换为元组
>>>tuple([1,2,3])
(1,2,3)
2.基本元组操作
元组的操作其实并不复杂,除了创建和访问之外也没有太多的其他操作。
字典
列表这种数据结构适合于将值组织到一个结构中,并且通过编号对其进行引用。而字典这种数据结构是通过名字来引用值的数据结构,这种数据结构称为映射(mapping)。字典是Python中唯一内建的映射类型,字典中的值并没有特殊的顺序,但是都存储在一个特定的键下,键可以是数字、字符串、甚至元组。
1.创建和使用字典
>>>phone = {'Void':'','Allen':''}
>>>phone['Void']
''
2.基本字典操作
- len(d)返回d中的项(键-值对)的数量
- d[k]返回关联到键k上的值
- d[k]=v将值v关联到键k上
- del d[k]删除键为k的项
- k in d 检查d中是否含有键为k的项
Python数据结构之列表、元组及字典的更多相关文章
- python学习之列表元组,字典
list:元素性质可以不一致,元素还可以是list,可类似数组方法进行索引(也可以用负数索引,-1表示最后一个),可用.append('')进行动态增加,可用pop()删除最后一个或者pop(i)删除 ...
- python 序列结构-列表,元组,字典,字符串,集合
列表 """ name_list.__add__( name_list.__getslice__( name_list.__new__( name_list.append ...
- Python—列表元组和字典
Python-列表元组和字典 列表 元组 字典 列表: 列表是Python中的一种数据结构,他可以存储不同类型的数据.尽量存储同一种类型 列表索引是从0开始的,我们可以通过索引来访问列表的值. 列表的 ...
- python学习笔记(一)元组,序列,字典
python学习笔记(一)元组,序列,字典
- python基础(五)列表,元组,集合
列表 在python中是由数个有序的元素组成的数据结构,每一个元素对应一个index索引来隐式标注元素在列表中的位置.是python中最常用的一种数据类型.需要注意的是列表中可以有重复相同的数据. 列 ...
- python基础语法3 元组,字典,集合
元组: ========================元组基本方法===========================用途:存储多个不同类型的值定义方式:用过小括号存储数据,数据与数据之间通过逗号 ...
- python学习之列表,元祖,字典
python基础 列表 [ ] stats =[1,2,3,4,5] 元素1,2,3,4,5 下标,索引,角标,初始从0开始 增加 stats.append(7)#append方法添加 stats. ...
- python字符串删除,列表删除以及字典删除的总结
一:字符串删除 1,字符串本身是不可变的,一个字符串定义以后,对他本身是不能做任何操作的,所以的增删改都是对原字符串拷贝的副本的操作,原来的字符串还是原来的字符串,它本身并没 有变 2,字符串本身是 ...
- Python数据结构:列表、元组和字典
在Python中有三种内建的数据结构——列表list.元组tuple和字典dict 列表中的项目包括在方括号中,项目之间用逗号分割 元组和列表十分类似,只不过元组和字符串一样是不可变的 即你不能修改元 ...
随机推荐
- EBS应用重启
重启系统应用 cd $ADMIN_SCRIPTS_HOME ./adstpall.sh apps/apps ./adstrtal.sh apps/apps 在重启应用时,可能会出现并发管理器未启动的情 ...
- iOS - 毛玻璃动画效果
声明全局变量 #define kMainBoundsHeight ([UIScreen mainScreen].bounds).size.height //屏幕的高度 #define kMainBou ...
- Unity中的输入
目录 移动平台的输入 触摸 触摸相关的函数 触摸的一个示例 重力加速器 在Unity中访问重力加速器的信息 重力加速器示例 虚拟键盘 其他输入 传统的输入 鼠标,键盘,控制杆,手柄 虚拟控制轴(Vir ...
- 不该被忽视的CoreJava细节(三)
一.不该被遗忘的移位位运算 本文主要介绍移位运算(Shift Operation), 适当介绍一下其它相关的位运算. 甭说计算机刚发明那会,就连21世纪初那段日子,计算机内存都是KB/MB计算的.编写 ...
- Element-ui多选下拉实现全部与其他互斥
1.以事件类型为例,给下拉绑定选项改变的change事件 2.当已选项个数大于1(即先选了其他,再选不限)且最后选的是不限时,取消其他选项选中状态: 当已选项个数等于2(即先选了不限,再选其他)且第一 ...
- WIN7 64位对Excel操作异常
在本地做Excel导出功能的测试时,报出“检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败”的异常,知道要对Excel进行D ...
- Java分代的思考
我们都知道,java的gc是基于java的分代前提,不管是CMS还是G1,都是基于分代思想:老年代和新生代 思考一:为什么可以分代? 1.java中对象的生命周期是不一样的,在gc中对应年龄的概念. ...
- OpenCV之CvMat、Mat、IplImage之间相互转换实例(转)
OpenCV学习之CvMat的用法详解及实例 CvMat是OpenCV比较基础的函数.初学者应该掌握并熟练应用.但是我认为计算机专业学习的方法是,不断的总结并且提炼,同时还要做大量的实践,如编码,才能 ...
- 20.JSON
JSON是javascript的一个子集,利用js中的一些儿模式来表示结构化数据.不是只有javascript才使用JSON,JSON是一种数据格式,很多编程语言都有针对JSON的解析器和序列化器. ...
- 使用dotnet-dump 查找 .net core 3.0 占用CPU 100%的原因
公司的产品一直紧跟 .net core 3.0 preview 不断升级, 部署到 Linux 服务器后, 偶尔会出现某个进程CPU占用100%. 由于服务部署在云上, 不能使用远程调试; 在局域网内 ...