python数据结构之列表和元组的详解


Posted in Python onSeptember 23, 2017

python数据结构之 列表和元组

序列:序列是一种数据结构,它包含的元素都进行了编号(从0开始)。典型的序列包括列表、字符串和元组。其中,列表是可变的(可以进行修改),而元组和字符串是不可变的(一旦创建了就是固定的)。序列中包含6种内建的序列,包括列表、元组、字符串、Unicode字符串、buffer对象、xrange对象。

列表的声明:

mylist = []

2.列表的操作:

(1) 序列的分片:
 用法:mylist[startIndex:endIndex:step]
 exam: 
  mylist[2:10] 检索第2个字符到第10个字符,默认步长为1.
  mylist[2:10:2] 检索第2个字符到第10个字符,指定步长为2.
  mylist[-2:-1:2] 正数索引是相对于首部的坐标,负数是相对于尾部的坐标。其实坐标一定要小于终止坐标,否则返回空的分片。
  mylist[-12:-2:-2] 步长也可以是负数,表示从右向左提取元素。

(2) 序列的索引:
 用法:mylist[index]
 exam:
  mylist[2] mylist[-2]
  ps:正数是相对于首部的坐标,负数是相对于尾部的坐标。

(3) 序列相加:
 用法: mylist1 + mylist2  <==>  [1,2] + [3,4]


(4) 序列乘法:
 用法: mylist * 5  mylist元素重复5次。

(5) in操作符:
 用法: ‘item' in mylist 判断mylist是否包含某一成员。

3.列表涉及的内建函数: 内建函数len、min、max针对列表操作非常有用。

(1) len函数返回序列中所包含元素的数量。
(2) min函数和max函数分别返回学列中最大和最小元素。
(3) list函数可以把字符串转换成列表。
  exam: list('hello') => ['H','e','l','l','o']
(4) cmp函数用来比较2个元素的大小 
  exam: cmp(x,y) => 返回0表示相等, -1 则是 x < y 1 则是 x > y
(5) reversed函数对序列进行反向迭代。
(6) sorted 返回已排序的包含seq所有元素的列表。

4.列表的方法:

(1)append: append方法在列表末尾追加新的对象。
  exam:lst=[1,2,3] lst.append(4) => [1,2,3,4]
(2)count: count方法统计某个元素在列表中出现的次数。
  exam: x=[[1,2],1,1,[2,1,[1,2]]] x.count(1) => 1
(3)extend: extend方法可以在列表的末尾一次性追加另外一个序列的多个值。即:可以用新列表扩展原有列表。
  exam: a=[1,2,3] b=[4,5,6] a.extend(b) => [1,2,3,4,5,6]
(4)index: index方法用于从列表中找出某个值第一个匹配项的索引位置。
  exam:lst=['we','le','at'] lst.index('le') => 1
(5)insert:insert方法用于将对象插入到列表中:
  exam:lst=[1,2,3,4,5,6] lst.insert(3,8) => [1,2,3,8,4,5,6]
(6)pop: pop方法移除列表中的一个元素(默认是最后一个),并且返回该元素。
(7)remove: remove方法移除列表中某个值的第一个匹配项:
  exam: x=['to','be','or'] x.remove('to') => 你懂得。
(8)reverse 方法将列表中的元素反序。
(9)sort 方法用于在原位置对列表进行排序。 
  exam: sort方法有默认的排序方法,另外还具有高级排序的用法,sort方法有两个可选的参数,key 和 reverse,key指定排序的关键字参数,指定后排序会按key的大小来排序,reverse用于指定是否反序。
    x.sort(key=len) => 表示按照字符串的长度排序。
    x.sort(reverse=True) => 表示反序排序。
    x.sort(cmp) => 指定排序函数,你懂的。

5.元组:元组和列表一样,也是一种序列。唯一的不同是元组不能修改。

(1) 声明方式:
  用逗号分隔一些值,就自动创建了元组。 exam: 1,2,3 => (1,2,3)
  也可以通过园括号声明。 exam: (1,2,3) => (1,2,3)

(2) 元组的乘法:
  3*(40+2) => (42,42,42)

6.元组涉及的内建函数:

(1)tuple函数的功能和list函数的基本上是一样的:以一个序列作为参数并把它转换为元组。
  exam: tuple([1,2,3]) => tuple(1,2,3)

7.元组的分片:

exam: x=1,2,3 x[1] => 2 x[0:2] => (1,2)

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
python编写暴力破解FTP密码小工具
Nov 19 Python
python通过正则查找微博@(at)用户的方法
Mar 13 Python
python下实现二叉堆以及堆排序的示例
Sep 29 Python
Python管理Windows服务小脚本
Mar 12 Python
python print 按逗号或空格分隔的方法
May 02 Python
python调用百度REST API实现语音识别
Aug 30 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
Nov 06 Python
python中logging模块的一些简单用法的使用
Feb 22 Python
PyQt打开保存对话框的方法和使用详解
Feb 27 Python
利用python list完成最简单的DB连接池方法
Aug 09 Python
pytorch SENet实现案例
Jun 24 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 Python
Python字符串和字典相关操作的实例详解
Sep 23 #Python
使用Turtle画正螺旋线的方法
Sep 22 #Python
详谈python read readline readlines的区别
Sep 22 #Python
Python实现针对含中文字符串的截取功能示例
Sep 22 #Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
Sep 22 #Python
Python中列表list以及list与数组array的相互转换实现方法
Sep 22 #Python
Python实现字符串与数组相互转换功能示例
Sep 22 #Python
You might like
桌面中心(一)创建数据库
2006/10/09 PHP
PHP实现定时生成HTML网站首页实例代码
2008/11/20 PHP
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
PHP 面向对象 final类与final方法
2010/05/05 PHP
PHP调用Webservice实例代码
2011/07/29 PHP
注册页面之前先验证用户名是否存在的php代码
2012/07/14 PHP
PHP与Perl之间知识点区别整理
2019/03/19 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
javascript比较文档位置
2008/04/08 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
2011/01/09 Javascript
了解一点js的Eval函数
2012/07/26 Javascript
jquery 通过name快速取值示例
2014/01/24 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
js+html5实现canvas绘制镂空字体文本的方法
2015/06/05 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
2018/09/26 Javascript
vue动画效果实现方法示例
2019/03/18 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
2020/03/03 Javascript
Electron整合React使用搭建开发环境的步骤详解
2020/06/07 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
[03:48]DOTA2完美大师赛主赛事第二日精彩集锦
2017/11/24 DOTA
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
Python logging模块原理解析及应用
2020/08/13 Python
浅谈html5增强的页面元素
2016/06/14 HTML / CSS
Philosophy美国官网:美国美容品牌
2016/08/15 全球购物
佳能英国官方网站:Canon UK
2017/08/08 全球购物
介绍java中初始化块的使用
2012/09/11 面试题
化工工艺专业求职信
2013/09/22 职场文书
打架检讨书100字
2014/01/19 职场文书
毕业生如何写自荐信
2014/03/26 职场文书
三月学雷锋月活动总结
2014/04/28 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
党支部培养考察意见
2015/06/02 职场文书
2016年感恩教师节校园广播稿
2015/12/18 职场文书