Python的元组与列表类似,同样可通过索引访问,支持异构,任意嵌套。不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。

创建元组

  元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可

  tuple = ()          #空元组

  tuple2 = ('a','b','c')

  tuple3 = ('d','e','f')

可以用dir(tuple)查看元组支持的操作;

元组操作方法及实例展示

count

1 功能:统计元组中某元素的个数
2 语法:T.count(value) -> integer -- return number of occurrences of value
3 T = ('a','b','c','d',1,2,2,3,4)
4 T.count(2)
5 结果:2 index
1 功能:获取元素在元组中的索引值,对于重复的元素,默认获取从左起第一个元素的索引值
2 语法:T.index(value, [start, [stop]]) -> integer -- return first index of value.Raises ValueError if the value is not present.
3 T = ('a','b',2,'c','d',1,2,3,4)
4 T.index(2)
5 结果:2 #元素2第一次出现在索引为2的位置
6 T.index(2,3,7)
7 结果:6 T1 + T2
1 功能:合并两个元组,返回一个新的元组,原元组不变
2 语法:T = T1 + T2
3 T1 = ('a','b','c')
4 T2 = (1,2,3,4)
5 T = T1 + T 2
6 结果:
7 print T
8 ('a','b','c',1,2,3,4)
9 print T1
10 ('a','b','c')
11 print T2
12 (1,2,3,4) T1 * N
1 功能:重复输出元组N次,返回一个新元组,原元组不变
2 语法:T = T1 * N
3 T1 = ('a','b',1,2,3)
4 T = T1 * 3
5 结果:
6 print T
7 ('a','b',1,2,3,'a','b',1,2,3,'a','b',1,2,3)
8 print T1
9 ('a','b',1,2,3) 元组虽然不可变,但是当元组中嵌套可变元素时,该可变元素是可以修改的,元组本身不变,使用id(tuple)查看。
1 T = ('a','b','c',[1,2,3,4],1,2,3)
2 id(T)
3 140073510482784
4 print T[3]
5 [1,2,3,4]
6 T[3].append(5)
7 print T[3]
8 [1,2,3,4,5]
9 print T
10 ('a','b','c',[1,2,3,4,5],1,2,3)
11 id(T)
12 140073510482784 元组支持切片操作
1 语法:T[start [, stop[, step]]]
2 实例演示:
3 T = ('a','b','c','d','e','f','g','h')
4 print T[:] #取所有元素
5 ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h')
6 print T[2:] #取从索引2开始到末尾的元素
7 ('c', 'd', 'e', 'f', 'g', 'h')
8 print T[2:6] #取索引2到6的所有元素,不包含索引6
9 ('c', 'd', 'e', 'f')
10 print T[2:6:2] #从索引2到6,每隔一个元素取一个
11 ('c', 'e')

2.列表(list)是处理一组有序项目的数据结构,即可以在列表中存储一个序列的项目。
列表是 可变类型的数据
2.1创建 列表l
ist1 = [ ]

list2=list()

list3  = [ 1, 'a',(1,),['hello,python']

2.2.列表中的元素是可以被 改变的,如下图

list.append 和删除 del list[]

list.remove(list[])  ,remove 为列表的删除方法。

list3.  按tab键,可以看到列表的其它方法

练习:
现有列表
list1 = ['XXXX', 'b', 3, 'c', '&', 'a', 3, '3', 3, 'aa', '3', 'XXXX']
list2 = ['e', 'f', 'g']
要求对其做以下操作:
1. 取出 ‘XXXX’ 中间的部分,形成一个新的列表list3

list1 = ['XXXX', 'b', 3, 'c', '&', 'a', 3, '3', 3, 'aa', '3', 'XXXX']
list2 = ['e', 'f', 'g']

list3=list1[1:11]

利用列表的切片功能,这时候要注意下表从0开始,11这个不包括本身。

2. 对list3 做一下几部操作
1)删除特殊符号

list3.remove('&')

2)统计 3 在list3中出现的次数

list3.count(3)

3)用最简短的代码去除list3中 26个字母以外的元素(要求只能对list3操作)

4)对list3排序

list3.sort

5)在末尾追加'd',并把list2追加到list3

list3.append('d')

3. 现有两个变量

a = ('h',)
b = ('h')
1)将a和b分别追加到上一题的list3中,观察有什么区别

a = ('h',)
b = ('h')
list3.append(a)
list3.append(b)
print list3


2)将1生成的list3转换成元组(扩展:自己搜索方法)

tuple(list3)


3)打印出只有一个元素'h'的元组,在2中生成的元组中的索引


print tuple(list3).index(a)

3.python元组与列表的更多相关文章

  1. python 元组不变 列表可变

    python 元组不变 列表可变 1,   --元组,注意要有逗号: [1] --列表 竟然才开始写python blog:

  2. [转载]Python 元组、列表、字典、文件

    python的元组.列表.字典数据类型是很python(there python is a adjective)的数据结构.这些结构都是经过足够优化后的,所以如果使用好的话,在某些area会有很大的益 ...

  3. 总结python 元组和列表的区别

    python的基本类型中有元组和列表这么俩个,但是这哥俩却比较难于区分,今天就来用简单的实例说明两者的不同. 列表:1.使用中括号([ ])包裹,元素值和个数可变 实例: aaa = ['sitena ...

  4. Python 元组、列表

    Python中,最常用的数据结构就是序列了.序列有以下几种:元组,列表,字符串等.注:代码都是在IDE中编辑的,没有用交互式环境. 一.元组(tuple) 元组其实有点类似C++中的数组,即一旦指定了 ...

  5. Python 元组和列表

    Python 元组 Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 如下实例: tup1 ...

  6. Python --元组与列表的差异

    · Python中的元组与列表类似,不同之处是元组的元素不能修改 · 元组使用小括号,不使用括号也可以,列表使用方括号 for example:

  7. Python元组、列表--笔记

    <Python3 程序开发指南> 序列包括元组和列表,首先,我们介绍元组. 元组--tuple 元组为有序的序列,元组和字符串一样也是固定的,不能替换或删除其中的任意数据项.如果需要修改应 ...

  8. Python元组与列表的区别

    列表类似于我们用铅笔在纸上写字,写错了还可以擦掉:而元组则类似于用钢笔写字,写错了就擦不掉了,除非换张纸重写. 列表和元组的区别主要体现在一下几个方面: 列表属于可变序列,他的元素可以随时修改或删除: ...

  9. Python元组与列表的区别和联系?

    1.  元组和列表比较相似,不过它们之间也有着不同: (1)列表:一个大仓库,你可以随时往里边添加和删除任何东西. (2)元组:封闭的列表,一旦定义,就不可改变(不能添加.删除或修改). 2. 什么情 ...

随机推荐

  1. javascript 关于 this 作用域链

    使用 function f() {}  或者 var f = function() {}  来定义的函数,this 是指向 全局对象   var  a = {    b: 1,    c: funct ...

  2. 腾讯Java程序员第二轮面试11个问题,你会几个?

    此前,分享了阿里巴巴.网易.百度等多家名企的JAVA面试题. 这也引来了不少程序员网友们的围观. 其中,也有相当一部分网友是已经从事Java开发好多年的程序员,当他们阅读完JAVA面试题的反应是:一个 ...

  3. css-子div设置margin-top影响父div

    父元素的第一个子元素的上边距margin-top如果碰不到有效的border或者padding.就会不断一层一层的找自己父元素,祖先元素,所有需要在父元素设置border,或者padding

  4. PostgreSQL 下生成 UUID(Guid)

    最近在Windows 10 下安装了 PostgreSQL(postgresql-9.6.3-1-windows.exe),在学习过程中,发现PostgreSQL 支持UUID(Guid)类型,但是却 ...

  5. javaBean实体包区分

    随着软件工程结构越来越复杂,单一的entity实体包无法满足业务需要,可以采取PO,BO,DTO结构来分类实体. PO (Persistent Object):与数据库表数据关联的实体. BO(Bus ...

  6. 如何完全根据官方下载包搭建hibernate框架

    好久没有用s2sh的框架了,最近业务需要又要拾起来.在搭框架时,发现之前都是复制配置文件,对具体的细节却很懵懂,所以要从新来一遍,也是一次新的学习. 我使用的版本是hibernate-release- ...

  7. Python 面向对象(四) 反射及其魔术方法

    反射 reflection 也有人称之为自省 作用: 运行时获取.添加对象的类型定义信息,包括类 内建方法: getattr(object, name[, default])   返回object对象 ...

  8. LKD: Chapter 8 Bottom Halves and Deferring Work

    In 2.6.x, there are 3 mechanisms for implementing a bottom half: softirqs, tasklets and work queues. ...

  9. Redis 持久化之RDB和AOP

    Redis 持久化之RDB和AOP Redis 有两种持久化方案,RDB (Redis DataBase)和 AOP (Append Only File).如果你先快速了解和使用RDB和AOP,可以直 ...

  10. 开源项目 log4android 使用方式详解

    话不多说, 直接上主题. log4android 是一个类似于log4j的开源android 日志记录项目. 项目基于 microlog 改编而来, 新加入了对文件输出的各种定义方式. 项目地址: 点 ...