Python 元组

元组的定义  元组(tuple)是一种Python对象类型,元组也是一种序列

Python中的元组与列表类似,不同之处元组的元素不能修改

元组使用小括号,列表使用方括号

元组的创建,即在括号中添加元素,并使用逗号隔开

 >>> a = 123,"aaa",["python","pass"]
>>> a
(123, 'aaa', ['python', 'pass'])
>>> type(a)
<type 'tuple'>
>>> print "I love %s,and I am a %s"%("Python","programmer")
I love Python,and I am a programmer

元组是一种序列,序列的基本操作 len() 、+、*、in、max()、min()、cmp()

元组与序列之间的转换

元组是不可修改的

 >>> a =(1,2,3)
>>> id(a) #a与b两个元组进行对比,是两个不同的对象
44307080L
>>> b=(1,3,2)
>>> id(b)
48683696L
>>> a
(1, 2, 3)
>>> len(a) #计算长度
3
>>> b
(1, 3, 2)
>>> a + b #将两个元组连接在一起
(1, 2, 3, 1, 3, 2)
>>> a * 3 #将a元组重复3次
(1, 2, 3, 1, 2, 3, 1, 2, 3)
>>> 3 in a #判断3这个元素是否在a这个元组中
True
>>> 4 in a #判断4这个元素是否在a这个元组中
False
>>> max(a) #计算元组a中的最大值
3
>>> min(a) #计算元组a中的最小值
1
>>> cmp(a,b) #比较元组a、b的大小
-1
>>> alst =list(a) #将元组转换为列表
>>> alst
[1, 2, 3]
>>> c =tuple(alst) #将列表转换为元组
>>> c
(1, 2, 3)
>>> a
(1, 2, 3)
>>> a.append(4) #向元组中追加元素,元组不可追加元素
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append' #元组没有属性append
>>> dir(tuple) #dir 查看元组,仅有count index
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

元组的索引和切片,与列表和字符串类似

元组中只包含一个元素时,需要在元素后面添加逗号

 >>> a
(1, 2, 3)
>>> a[0] #通过索引值取出元素
1
>>> a[1]
2
>>> a[2]
3
>>> a[1:] #通过切片方式取出元素
(2, 3)
>>> a[0:2]
(1, 2)
>>> a[::-1] #将元组a反转
(3, 2, 1)
>>> alst[1]=100 #向alst列表中增加元素 alst[1]
>>> alst
[1, 100, 3]
>>> a[1]=100 #元组中不能通过此方式添加元素
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment 元组不支持修改
>>> temp =list(a) #将元组a转换成列表存于temp临时变量中
>>> temp[1]=100    #将100添加到列表temp索引位置为1的地方
>>> a =tuple(temp)  #再将temp转为元组
>>> a          #实现元组与列表之间的互转
(1, 100, 3)
>>> [1]      #单独的[1]是一个列表
[1]
>>> type([1])
<type 'list'>
>>> type((1)) #单独(1)是一个整型
<type 'int'>
>>> type((1,)) #单独(1,)是一个元组, 元组中只包含一个元素时,需要在元素后面添加逗号
<type 'tuple'>
>>>

元组的count()和index()

 >>> a
(1, 100, 3)
>>> b=a*3
>>> b
(1, 100, 3, 1, 100, 3, 1, 100, 3)
>>> b.count(1) #统计1出现的次数
3
>>> b.index(3) #计算3第一次出现的位置
2

元组的意义

元组比列表操作速度快

对数据“写保护” 因为元组不可修改

可用于字符串格式化中

可作为字典的key

Python 学习笔记(九)Python元组和字典(一)的更多相关文章

  1. Python学习笔记----列表、元组和字典的基础操作

    文章目录 一.列表的基本操作 1.1 修改列表中的某个数据 1.2 获取某个元素的返回值(返回的是索引) 1.3 在列表中插入新的元素 1.4 删除列表中的元素 1.5 +和* 二.内置的函数和方法 ...

  2. python3.4学习笔记(九) Python GUI桌面应用开发工具选择

    python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者http://www.admin10000.com/document/96 ...

  3. Python学习笔记九

    Python学习笔记之九 为什么要有操作系统 管理硬件,提供接口. 管理调度进程,并且将多个进程对硬件的竞争变得有序. 操作系统发展史 第一代计算机:真空管和穿孔卡片 没有操作系统,所有的程序设计直接 ...

  4. python 学习笔记 9 -- Python强大的自省简析

    1. 什么是自省? 自省就是自我评价.自我反省.自我批评.自我调控和自我教育,是孔子提出的一种自我道德修养的方法.他说:“见贤思齐焉,见不贤而内自省也.”(<论语·里仁>)当然,我们今天不 ...

  5. python学习笔记(一):python简介和入门

    最近重新开始学习python,之前也自学过一段时间python,对python还算有点了解,本次重新认识python,也算当写一个小小的教程.一.什么是python?python是一种面向对象.解释型 ...

  6. python学习笔记之——python模块

    1.python模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python ...

  7. Python学习笔记 - day12 - Python操作NoSQL

    NoSQL(非关系型数据库) NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称.用于超大规模数据的存储.(例如 ...

  8. python 学习笔记一——Python安装和IDLE使用

    好吧,一直准备学点啥,前些日子也下好了一些python电子书,但之后又没影了.年龄大了,就是不爱学习了.那就现在开始吧. 安装python 3 Mac OS X会预装python 2,Linux的大多 ...

  9. python学习笔记(python简史)

    一.python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum) 目前python主要应用领域: ·云计算 ·WEB开发 ·科学运算.人工智能 ·系统运维 ·金融:量化交 ...

  10. python学习笔记(1)--python特点

    python诞生于复杂的信息系统时代,是计算机时代演进的一种选择. python的特点,通用语言,脚本语言,跨平台语言.这门语言可以用于普适的计算,不局限于某一类应用,通用性是它的最大特点.pytho ...

随机推荐

  1. zookeeper学习实践1-实现分布式锁

    引言 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提 ...

  2. csharp: using using System.Web.Script.Serialization read json

    using System; using System.Data; using System.Configuration; using System.Collections; using System. ...

  3. js-JavaScript的简介

    JavaScript的简介 * 是基于对象和事件驱动的语言,应用于客户端 - 基于对象: ** 提供好了很多对象,可以直接拿过来使用 - 事件驱动: ** HTML做网站静态效果,JavaScript ...

  4. Java全系列帮助文档下载

    JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet和应用程序的程序开发环境.它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运 ...

  5. easyui汉化啊!

    <script type="text/javascript" src="__PUBLIC__/jquery-easyui-1.4.4/locale/easyui-l ...

  6. vs2010开发activex(MFC)控件/ie插件(二):js传参数

    原文:http://blog.csdn.net/yhhyhhyhhyhh/article/details/50802075  js传参数给activex控件. 过程为:js变量通过activex类的属 ...

  7. Postfix的工作原理

    传统的Sendmail将所有功能都集中在同一个程序里,这种结构我们称之为“单体式设计”(monolithic).Postfix采用专职负责的策略,不同的功能分别交由不同的专门程序处理,这种结构称为“模 ...

  8. 面对IBM与亚马逊的犄角攻势,微软云如何招架?

    亚马逊AWS和微软Azure是全球公有云的焦点.不就前公布的财报不久前公布的财报,这两家公司云计算的收入越来越接近,从数据显示来看,亚马逊的利润比微软稍高,有人称微软云的高增长来自于捆绑销售,背后真正 ...

  9. 关于派生类访问基类对象的保护变量的问题 --Coursera

    https://class.coursera.org/pkupop-001/forum/thread?thread_id=350   郭天魁· 6 months ago 在课件中我们知道如下程序是不能 ...

  10. 关于map容器的元素被无参初始化

    使用C++中的map容器定义一个mp,当你执行if语句判断mp[3]是否为1时,那么如果mp[3]以前不存在,此时mp[3]就会被无参初始化,second赋值为0. 以下的程序可以证明这一点.执行了第 ...