python基础教程之元组操作使用详解

简介

tuple

1.元组是以圆括号“()”包围的数据集合,不同成员以“,”分隔。通过下标进行访问

2.不可变序列,可以看做不可变的列表,与列表不同:元组中数据一旦确立就不能改变(所以没有类似列表的增删改操作,只有基本序列操作)

3.支持任意类型,任意嵌套以及常见的序列操作

4.元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变

声明及使用

代码如下:

t = ()  #空元组
t =(1,)  #单个元素元组,注意逗号必须
t =(1,2,3)

1 in t #判断
2 not in t

#其他同序列基本操作:分片,索引
print t[0]
print t[-1]
print t[:2]

#不会对原来元组造成影响
print t+(4,5)  #返回新元组(1,2,3,4,5)
print t * 2    #(1,2,3,1,2,3)
t.index(1)
t.count(1)

#列表元组转换
l = [1,2,3]
lt = tuple(l)
tl = list(lt)
lt_sorted = sorted(l)  #对元组进行排序,返回是列表

#字符串转元组(得到字符元组序列)
print tuple('hello)   #('h','e','l','l','o')
tuple没有append/extend/remove/pop等增删改操作tuple没有find

查看帮助


代码如下:

help(tuple)

用途

1.赋值


代码如下:

t = 1,2,3   #等价 t = (1, 2, 3)
x, y, z = t   #序列拆封,要求左侧变量数目和右侧序列长度相等

2.函数多个返回值


代码如下:

def test():
    return (1,2)
x, y = test()

3.传参[强制不改变原始序列]


代码如下:

def print_list(l):
    t = tuple(l)   #或者t = l[:]
    dosomething()

4.字符串格式化


代码如下:

print '%s is %s years old' % ('tom', 20)

5.作为字典的key

优点
1.性能

tuple比列表操作速度快

若需要定义一个常量集,或者是只读序列,唯一的操作是不断遍历之,使用tuple代替list


代码如下:

>>> a = tuple(range(1000))
>>> b = range(1000)
>>> def test_t():
...     for i in a:
...             pass
...
>>> def test_l():
...     for i in b:
...             pass
...
>>> from timeit import Timer
>>> at = Timer("test_t()", "from __main__ import test_t")
>>> bt = Timer("test_l()", "from __main__ import test_l")

简单测试


代码如下:

>>> at.repeat(3, 100000)
[1.526214838027954, 1.5191287994384766, 1.5181210041046143]

>>> bt.repeat(3, 100000)
[1.5545141696929932, 1.557785987854004, 1.5511009693145752]

2.不可变性

对不需要的数据进行“写保护”,使代码更加安全

不可变性,若在程序中以列表形式传递对象集合,可能在任何地方被改变,使用元组,则不能

不可变性只适用于元组本身顶层而非其内容,例如元组内部的列表可以修改

代码如下:

l = [1,2,3]
t = (1,2,l)
l.append(4)

不可变性提供了某种完整性,规范化,确保不会被修改,保持某种固定关系

修改的方法


代码如下:

tuple -> list -> tuple

(0)

相关推荐

  • Python元组操作实例分析【创建、赋值、更新、删除等】

    本文实例讲述了Python元组操作.分享给大家供大家参考,具体如下: #coding=utf8 ''''' 元组是跟列表非常相近的另一种容器类型. 元组是一种不可变类型,一旦创建不可以修改其中元素. 由于这种特性,元组能做一个字典的key. 当处理一组对象时,这个组默认是元组类型. ''' '''''创建元组并赋值''' #创建并对一个元组赋值 tuple_1=(1,2,3,"ewang","demo") #创建一个空的元组 tuple_2=() #使用tuple创

  • python使用in操作符时元组和数组的区别分析

    在python中可以使用in符号判断指定的元素是否存在于列表中,但我发现元组和数组存在区别,下面是详细实验结果. >>> 'jb51.net' in ['haotu.net','jb51.net'] True >>> 'jb51.net' in ('haotu.net','jb51.net') True >>> 'jb51.net' in ['jb51.net/codes','haotu.net'] False >>> 'jb51.n

  • Python 元组(Tuple)操作详解

    一.创建元组 复制代码 代码如下: tup1 = ('physics', 'chemistry', 1997, 2000);tup2 = (1, 2, 3, 4, 5 );tup3 = "a", "b", "c", "d"; 创建空元组 复制代码 代码如下: tup1 = (); 元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义 复制代码 代码如下: tup1 = (50,); 元组与字符串类似,下标索引从0开始,可以

  • Python中列表、字典、元组、集合数据结构整理

    本文详细归纳整理了Python中列表.字典.元组.集合数据结构.分享给大家供大家参考.具体分析如下: 列表: 复制代码 代码如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] 字典: 复制代码 代码如下: di = {'a':123,'b':'something'} 集合: 复制代码 代码如下: jihe = {'apple','pear','apple'} 元组: 复制代码 代码如下: t = 123,456,'hello' 1.列表 空

  • Python中声明只包含一个元素的元组数据方法

    调试程序的时候,就吃过这个亏,不知道为何Python使用括号做元组声明边界符,估计是找不到合适的符号了.中括号用来声明列表,花括号用来声明字典,元组号只能用括号来声明了.有其他语言编程经历的朋友都清楚括号在其它语言里都是表示优先级,而Python也可以用来表示优先级,所以也就引发了以下白痴的问题. 复制代码 代码如下: # encoding=UTF-8   obj = ('tuple')   print obj print type(obj) print len(obj) 执行结果 复制代码 代

  • Python中3种内建数据结构:列表、元组和字典

    Python中有3种内建的数据结构:列表.元组和字典.参考简明Python教程 1. 列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目.假想你有一个购物列表,上面记载着你要买的东西,你就容易理解列表了.只不过在你的购物表上,可能每样东西都独自占有一行,而在Python中,你在每个项目之间用逗号分割. 列表中的项目应该包括在方括号中,这样Python就知道你是在指明一个列表.一旦你创建了一个列表,你可以添加.删除或是搜索列表中的项目.由于你可以增加或删除项目,

  • python元组操作实例解析

    本文实例讲述了python元组操作方法,分享给大家供大家参考.具体分析如下: 一般来说,python的函数用法挺灵活的,和c.php的用法不太一样,和js倒是挺像的. 在照着操作时,可以发现一个很神奇的现象: >>> t = (1, 3, 'b') >>> q = t + ((3, 'abc')) >>> q (1, 3, 'b', 3, 'abc') 这里我预料的应该是(1, 3, 'b', (3, 'abc')),但是结果却是(1, 3, 'b',

  • Python最基本的数据类型以及对元组的介绍

    简单类型 内置到 Python 编程语言中的简单数据类型包括: bool     int     float     complex 支持简单数据类型不是 Python 独有的功能,因为多数现代编程语言都具有完整类型补充.例如 Java? 语言甚至有一组更丰富的原始数据类型: byte     short     int     long     float     double     char     boolean 但是,在 Python 中,简单数据类型并不是原始数据类型,而是完善的对象

  • python列表与元组详解实例

    在这章中引入了数据结构的概念.数据结构是通过某种方式组织在一起的数据元素的集合.在python中,最基本的数据结构就是序列.序列中的每个元素被分配一个序号,即元素的位置,也被称为索引.注意:第一个索引是0.1.序列概览python有6种内建的序列:列表,元组,字符串,Unicode字符串,buffer对象和xrange对象. 这里重点介绍列表和元组.列表和元组主要区别在于,列表可以修改,元组不可修改.一般来说,在几乎所有情况下列表都可以代替元组.在需要操作一组数值的时候,序列很好用: 复制代码

  • Python字符串、元组、列表、字典互相转换的方法

    废话不多说了,直接给大家贴代码了,代码写的不好还去各位大侠见谅. #-*-coding:utf-8-*- #1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} #字典转为字符串,返回:<type 'str'> {'age': 7, 'name': 'Zara', 'class': 'First'} print type(str(dict)), str(dict) #字典可以转为元组,返回:('age', 'name', 'class

  • Python入门篇之列表和元组

    列表和元组的主要区别在于,列表可以修改,元组则不能.一般情况下,在几乎所有的情况下列表都可以代替元组 例如:使用序列可以表示数据库中一个人的信息(姓名,年龄) 复制代码 代码如下: >>> edward=['Edward Gumby',42] 序列还可以包含其他序列 复制代码 代码如下: >>> edward=['Edward Gumby',42] >>> john=['John Smith',50] >>> database=[ed

  • Python常用的内置序列结构(列表、元组、字典)学习笔记

    列表与元组 列表用大括号[]表示,元组用圆括号()表示. 列表可以修改,字符串与元组不可修改. 元组的分片还是元组,列表的分片还是列表. 1.列表方法: name=["zhang3","li4","wang5"] name.append("gou6") #添加项 name.remove("gou6") #移除第一个匹配项,也可用del name[3]来移除 name.insert(3,"gou6&

随机推荐