作者博文地址:http://www.cnblogs.com/spiritman/

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

创建元组

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

  tup1 = ()          #空元组

  tup2 = ('a','b','c','d')

  tup3 = (1,2,3,'a','b','c')

元组操作方法及实例展示

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

count

 功能:统计元组中某元素的个数
语法:T.count(value) -> integer -- return number of occurrences of value
T = ('a','b','c','d',1,2,2,3,4)
T.count(2)
结果: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

 功能:合并两个元组,返回一个新的元组,原元组不变
语法:T = T1 + T2
T1 = ('a','b','c')
T2 = (1,2,3,4)
T = T1 + T 2
结果:
7 print T
('a','b','c',1,2,3,4)
print T1
('a','b','c')
print T2
(1,2,3,4)

T1 * N

 功能:重复输出元组N次,返回一个新元组,原元组不变
语法:T = T1 * N
T1 = ('a','b',1,2,3)
T = T1 * 3
结果:
print T
('a','b',1,2,3,'a','b',1,2,3,'a','b',1,2,3)
print T1
('a','b',1,2,3)

元组虽然不可变,但是当元组中嵌套可变元素时,该可变元素是可以修改的,元组本身不变,使用id(tuple)查看。

 T = ('a','b','c',[1,2,3,4],1,2,3)
2 id(T)
3 140073510482784
print T[3]
[1,2,3,4]
T[3].append(5)
print T[3]
[1,2,3,4,5]
print T
10 ('a','b','c',[1,2,3,4,5],1,2,3)
11 id(T)
12 140073510482784

元组支持切片操作

 语法:T[start [, stop[, step]]]
实例演示:
T = ('a','b','c','d','e','f','g','h')
print T[:] #取所有元素
('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h')
print T[2:] #取从索引2开始到末尾的元素
('c', 'd', 'e', 'f', 'g', 'h')
print T[2:6] #取索引2到6的所有元素,不包含索引6
('c', 'd', 'e', 'f')
print T[2:6:2] #从索引2到6,每隔一个元素取一个
('c', 'e')

作者博文地址:http://www.cnblogs.com/spiritman/

最新文章

  1. DIV宽度自动缓慢变化
  2. ichat在线客服jQuery插件(可能是历史上最灵活的)
  3. Java多线程-新特性-有返回值的线程
  4. android 开发 解码gif图片,获取每帧bitmap
  5. 【Shell脚本学习12】Shell字符串
  6. U盘安装ubuntu14.10时出现的gfxboot.c32:not a COM32R image问题
  7. Struts2.x教程(一) Struts2介绍
  8. 【分享】改变未来的九大算法[pdf][清晰扫描版]
  9. 《JS权威指南学习总结--6.8对象的三个属性》
  10. C# devExpress BandedGridView属性 备忘
  11. BZOJ 1770: [Usaco2009 Nov]lights 燈 [高斯消元XOR 搜索]
  12. CentOS 7 安装Graphite
  13. 记一次CPU飙升BUG
  14. Linux 命令行敲命令 光标移动快捷键
  15. C语言中tm结构体
  16. canvas(四) Gradient- demo
  17. 使用VS2013和git进行代码管理
  18. redis缓存分页思路
  19. MongoDB入门(3)- MongoDB备份与恢复
  20. Java多线程学习(三)volatile关键字

热门文章

  1. 我的linux shell 脚本头部
  2. 初识Qt鼠标、键盘事件及定时器和随机数
  3. Spring整合MyBatis(二)Spring整合MyBatis
  4. Angular动态表单生成(七)
  5. 郑重推荐开源CANopen协议栈CANFestival(LGPL许可)!!!!!!!!
  6. CoreText 关键性常用函数说明
  7. hive的实践部分
  8. nRF52832 改变ATT_MTU提高蓝牙数据发送速率(nRF5_SDK_14.2.0)
  9. C语言之随机数函数( rand() )的使用方法
  10. 3.Functions-函数(Dart中文文档)