一位大牛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数据结构之列表、元组及字典的更多相关文章

  1. python学习之列表元组,字典

    list:元素性质可以不一致,元素还可以是list,可类似数组方法进行索引(也可以用负数索引,-1表示最后一个),可用.append('')进行动态增加,可用pop()删除最后一个或者pop(i)删除 ...

  2. python 序列结构-列表,元组,字典,字符串,集合

    列表 """ name_list.__add__( name_list.__getslice__( name_list.__new__( name_list.append ...

  3. Python—列表元组和字典

    Python-列表元组和字典 列表 元组 字典 列表: 列表是Python中的一种数据结构,他可以存储不同类型的数据.尽量存储同一种类型 列表索引是从0开始的,我们可以通过索引来访问列表的值. 列表的 ...

  4. python学习笔记(一)元组,序列,字典

    python学习笔记(一)元组,序列,字典

  5. python基础(五)列表,元组,集合

    列表 在python中是由数个有序的元素组成的数据结构,每一个元素对应一个index索引来隐式标注元素在列表中的位置.是python中最常用的一种数据类型.需要注意的是列表中可以有重复相同的数据. 列 ...

  6. python基础语法3 元组,字典,集合

    元组: ========================元组基本方法===========================用途:存储多个不同类型的值定义方式:用过小括号存储数据,数据与数据之间通过逗号 ...

  7. python学习之列表,元祖,字典

    python基础 列表  [ ] stats =[1,2,3,4,5] 元素1,2,3,4,5 下标,索引,角标,初始从0开始 增加 stats.append(7)#append方法添加 stats. ...

  8. python字符串删除,列表删除以及字典删除的总结

    一:字符串删除  1,字符串本身是不可变的,一个字符串定义以后,对他本身是不能做任何操作的,所以的增删改都是对原字符串拷贝的副本的操作,原来的字符串还是原来的字符串,它本身并没 有变 2,字符串本身是 ...

  9. Python数据结构:列表、元组和字典

    在Python中有三种内建的数据结构——列表list.元组tuple和字典dict 列表中的项目包括在方括号中,项目之间用逗号分割 元组和列表十分类似,只不过元组和字符串一样是不可变的 即你不能修改元 ...

随机推荐

  1. Zabbix邮件报警设置方法

    实现目的: 在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱. 具体操作: 以下操作在Zabbix监控服务端进行 备注:Zabbix监控服务端 操 ...

  2. LEMP (LNMP) Stack-5.4.16 (OpenLogic CentOS 7.2)

    LEMP (LNMP) Stack-5.4.16 (OpenLogic CentOS 7.2) 平台: CentOS 类型: 虚拟机镜像 软件包: mariadb-5.5.47 nginx-1.6.3 ...

  3. linux打开文件数测试

    /proc/sys/kernel/threads-max 系统最大线程数量 /proc/sys/vm/max_map_count 限制一个进程可以拥有的VMA(虚拟内存区域)的数量 /proc/sys ...

  4. ssh登录卡住问题

    使用ssh登录远程centos服务器,卡住不动 系统centos 7 加-v查看登录过程,一直卡在这里 解决:我的是mtu问题 将eth0 mtu 默认1500修改为1200就可以了 ifconfig ...

  5. Vultr VPS建站攻略 – 一键安装LNMP无面板高性能WEB环境

    在"Vultr VPS建站攻略 - 一键安装宝塔面板架设LNMP/LAMP Web环境"文章中,VULTR中文网分享到我们常用的可视化面板宝塔面板安装在VULTR VPS主机中建站 ...

  6. mif文件生成方法

    mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据.常见生成方法: Quartus自带的mif编辑器生成 mif软件生成 高级编程语 ...

  7. Python爬虫实战:爬糗事百科的段子

    一个偶然的机会接触了Python,感觉很好用,但是一直在看c++啥的,也没系统学习.用过之后也荒废了许久.之前想建个公众号自动爬糗事百科的段子,但是没能建起来,真是尴尬,代码上传的服务器上之后,不能正 ...

  8. VMware Workstation Pro 11、12 密钥

    11:1F04Z-6D111-7Z029-AV0Q4-3AEH8 12:5A02H-AU243-TZJ49-GTC7K-3C61N

  9. Android(java)学习笔记103:Framework运行环境之 Android进程产生过程

    1. 前面Android(java)学习笔记159提到Dalvik虚拟机启动初始化过程,就下来就是启动zygote进程: zygote进程是所有APK应用进程的父进程:每当执行一个Android应用程 ...

  10. C/C++语言补缺 宏- extern "C"-C/C++互调

    1. 宏中的# 宏中的#的功能是将其后面的宏参数进行字符串化操作(Stringizing operator),简单说就是在它引用的宏变量的左右各加上一个双引号. 如定义好#define STRING( ...