数据结构是用来存储数据的逻辑结构,合理使用数据结构才能编写出优秀的代码。本文主要介绍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. 关于 MySQL LEFT JOIN 不可不知的事

    你认为自己已对 MySQL 的 LEFT JOIN 理解深刻,这篇文章,我想让你能多学会点东西! ON 子句与 WHERE 子句的不同 一种更好地理解带有 WHERE ... IS NULL 子句的复 ...

  2. Glow 效果材质

    转自:http://blog.csdn.net/panda1234lee/article/details/60960846 算法较简单,首先来看 Base color 部分: 就是将对事先准备好的三张 ...

  3. Windows安装启动MySQL

    Win安装MySQL数据库将下载下来的mysql解压到指定目录下,cmd切换到bin目录下>mysqld -install 安装服务>mysqld -remove 卸载服务>net ...

  4. windows下安装、卸载mysql服务

    将下载下来的mysql解压到指定目录下(如:d:\mysql)安装服务在命令行输入d:\mysql\bin\mysqld -installnet start mysql卸载服务在命令行输入net st ...

  5. 怎么查看SAS到期时间

    通过以下命令,可以查看SAS到期时间: proc setinit; run;

  6. strut2的核心知识和工作原理

    http://blog.csdn.net/laner0515/article/details/27692673/     写的很详细

  7. C Mysql API连接Mysql

    最近都在查看MYsql C API文档,也遇到了很多问题,下面来简单的做一个总结. mysql多线程问题 mysql多线程处理不好,经常会发生coredump,见使用Mysql出core一文. 单线程 ...

  8. Android WebView无法播放视频或直播,关闭界面后任在播放的问题;

    1.设置webview属性: webView.setWebChromeClient(new MyWebChromeClient());         webSettings = webView.ge ...

  9. SDOI2018物理实验

    /* 向量运算不会呐 抄了一个长度几百行的模板 一直过不了编译 醉了 还是抄了大佬的代码 首先把所有的线段投影到 导轨上 然后用set 分上和下分别维护一下 距离导轨最近的线段 是能够照射到的 可以证 ...

  10. oracle取出多个字段列中的最大值和最小值

    greatest 函数和least函数 select serverid, greatest(e.core0, e.core1, e.score2 ) from e