数据结构是用来存储数据的逻辑结构,合理使用数据结构才能编写出优秀的代码。本文主要介绍Python提供的几种内置数据结构,包括元组、列表、字典的定义和基本操作方法以及介绍典型函数的使用方法。

元组结构

元组由一系列元素组成,包含在一对圆括号中。元组创建后不可修改。创建元组方法如下:

tuple = () # 空元组
tuple = ('Python',) #单元素元组,后面必须包含一个逗号
tuple = ('Python', 'Java', 'Shell') #多元素元组
tuple = (('Python', 'Java'), 'Shell', ['C++', 'Ruby'], 20) #元组中的元素可以是不同类型的数据

元组的基本操作,详细介绍可以通过help(tuple)查看。

(1)通过下标访问指定元素值

tuple[0] #访问第一个元素,下标从0开始

(2)通过切片访问某段的值

tuple[1:3] #获取下标1和2的值,不包括下标3

(3)遍历访问元组中的所有元素

for i in range(len(tuple)):
print "tuple[%d] = %s" % (i, tuple[i])

(4)元组的拆包赋值。可用于获取函数返回的多个值。

val1, val2, val3 = tuple #注意:变量个数要与元组中的元素个数一致。

列表结构

列表中是由一系列元素组成,包含一对方括号中。列表可以添加、删除、查找操作,元素值可修改。列表创建方法如下:

lst = [] # 空列表
lst = ['Python'] #单元素列表
lst = ['Python', 'Java', 'Shell'] #多元素元组
lst = [('Python', 'Java'), 'Shell', ['C++', 'Ruby'], 20] #列表中的元素可以是不同类型的数据

列表的基本操作方法,详细介绍可以通过help(list)查看。

lst.append(object) #在列表的末尾添加一个对象object
lst.insert(index,object) #在指定的索引index处插入一个对象object
lst.remove(value) #删除列表中首次出现的value值
lst.pop([index]) #删除索引index指定的值,如果不指定,删除列表中的最后一个元素
lst.extend(iterable) #将iterable指定的元素添加到列表末尾
lst.index(value, [start,[stop]]) #返回value出现在列表中的索引
lst.sort(cmp=None, key=None, reverse=False) #列表的排序
lst.reverse(...) # 列表的反转
value in lst #判断指定value是否存在于列表中
value not in lst #判断指定的vale是否不在列表中

列表的基本操作方法实例

>>> lst = ['','',''] #初始化一个列表
>>> lst.append('') #使用append()函数条件一个值
>>> lst
['', '', '', '']
>>> lst.insert(0,'') #在指定位置0插入字符'0'
>>> lst
['', '', '', '', '']
>>> lst.remove('') #删除列表中的字符'3'
>>> lst
['', '', '', '']
>>> lst.pop() #将指定位置字符删除,默认是最后一个位置。
''
>>> lst
['', '', '']
>>> lst.extend(['','','']) #合并列表
>>> lst
['', '', '', '', '', '']
>>> lst.index('')
3
>>> lst.sort() #对列表lst进行排序,原地置换
>>> lst
['', '', '', '', '', '']
>>> lst.reverse() #对列表lst进行反转输出,原地置换
>>> lst
['', '', '', '', '', '']
>>> '' in lst #判断指定字符'3' 是否在lst中,存在则返回True
True
>>> 3 in lst #3不存在lst中,返回False
False
>>> 3 not in lst #3不存在lst中,返回True
True

sort()函数典型实例介绍

1、按照指定字段排序列表元素

>>> lst = ['192.168.0.1 Success','192.168.0.10 Fail','192.168.0.2 Success']
>>> lst.sort(key = lambda x:int(x.split(' ')[0].split('.')[3]))
>>> print lst
['192.168.0.1 Success', '192.168.0.2 Success', '192.168.0.10 Fail']

Python 数据结构基本操作的更多相关文章

  1. python数据结构与算法

    最近忙着准备各种笔试的东西,主要看什么数据结构啊,算法啦,balahbalah啊,以前一直就没看过这些,就挑了本简单的<啊哈算法>入门,不过里面的数据结构和算法都是用C语言写的,而自己对p ...

  2. python数据结构与算法——链表

    具体的数据结构可以参考下面的这两篇博客: python 数据结构之单链表的实现: http://www.cnblogs.com/yupeng/p/3413763.html python 数据结构之双向 ...

  3. python数据结构之图的实现

    python数据结构之图的实现,官方有一篇文章介绍,http://www.python.org/doc/essays/graphs.html 下面简要的介绍下: 比如有这么一张图: A -> B ...

  4. Python数据结构与算法--List和Dictionaries

    Lists 当实现 list 的数据结构的时候Python 的设计者有很多的选择. 每一个选择都有可能影响着 list 操作执行的快慢. 当然他们也试图优化一些不常见的操作. 但是当权衡的时候,它们还 ...

  5. Python数据结构与算法--算法分析

    在计算机科学中,算法分析(Analysis of algorithm)是分析执行一个给定算法需要消耗的计算资源数量(例如计算时间,存储器使用等)的过程.算法的效率或复杂度在理论上表示为一个函数.其定义 ...

  6. Python数据结构与循环语句

    # Python数据结构与循环语句:   首先编程是一项技能,类似跑步,期初不必在意细节,能使用起来就行,等学的游刃有余了再回过头来关注细节问题也不迟.  关于买书: 学会python之后,才需要买书 ...

  7. python数据结构之栈与队列

    python数据结构之栈与队列 用list实现堆栈stack 堆栈:后进先出 如何进?用append 如何出?用pop() >>> >>> stack = [3, ...

  8. python数据结构之树和二叉树(先序遍历、中序遍历和后序遍历)

    python数据结构之树和二叉树(先序遍历.中序遍历和后序遍历) 树 树是\(n\)(\(n\ge 0\))个结点的有限集.在任意一棵非空树中,有且只有一个根结点. 二叉树是有限个元素的集合,该集合或 ...

  9. Python数据结构之四——set(集合)

    Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ 经过几天的回顾和学习,我终于把Python 3.x中的基础知识介绍好啦.下面将要继续什么呢?让我想想先~~~嗯,还是 ...

随机推荐

  1. 高通9X07模块QMI架构使用入门

    QMI(Qualcomm Message Interface) 高通用来替代OneRPC/DM的协议,用来与modem通信.本文是摸索高通QMI机制一点经验,重点解读了如果建立拨号连接,仅供参考.qm ...

  2. SSL&HTTPS简单介绍

    这篇是最近看SSL和HTTPS的一个简单性总结,其中内容大部分都是参考网络上的内容,自己归纳整理了下. SSL介绍 HTTPS介绍 HTTP请求数据工作流程: l  用户在浏览器中输入网址,并告诉浏览 ...

  3. vue事件深入

    事件对象: @click="show($event)" ev.clientX---接收 事件冒泡: 阻止冒泡: 1. ev.cancelBubble=true; 2.@click. ...

  4. mysql空间类型使用笔记

    创建表,填充测试数据 create table geom1(id int not null auto_increment primary key,geo geometry); )); )); sele ...

  5. 第11章 拾遗4:IPv6(2)_给计算机配置IPv6地址

    4. 给计算机配置IPv6地址 4.1 无状态自动配置IPv6地址 (1)网络拓扑 ①无状态地址自动配置是指不需要DHCP服务器进行管理,由客户端向路由器发送前缀请求(RS)询问其所在网段.路由器收到 ...

  6. Android Activity传递数据使用getIntent()接收不到,揭秘Intent传递数据与Activity启动模式singleTask的关系。

    activity通过intent传递数据的时候,如果activity未启动,那么在这个刚启动的activity里通过getIntent()会获取到这个intent的数据.. 如果要启动的activit ...

  7. Java捕获异常的问题

    ---恢复内容开始--- 在Java编译过程中,有时候会出现输入未按照规定输入的情况,此时需要警告用户输入错误,这就会是程序运行过程中出现异常.异常就是可预测但是又没办法消除的一种错误.所以在编写过程 ...

  8. vue的v-for数组和对象

    v-for="(item,index) of hot" //数组遍历 v-for="(item,key,index) of cities" //对象遍历 //k ...

  9. 使用NetBox实现ASP网页封装为EXE教程

    简单的形容就是把ASP文件打包 成一个EXE文件,并且不需要在调试的机器上安装IIS即可正常调试.如果按照说明书来操作的话,观看比较繁琐,本人为方便大家使用,现制作一个简单的使用教程. 封装过程 1. ...

  10. Error building Player: UnityException: Bundle Identifier has not been set up correctly

    错误提示: Error building Player: UnityException: Bundle Identifier has not been set up correctlyPlease s ...