龙空技术网

Python笔记-什么是元组?

注会闲谈 54

前言:

如今我们对“python中元组”大体比较关心,看官们都需要剖析一些“python中元组”的相关内容。那么小编在网络上网罗了一些有关“python中元组””的相关资讯,希望姐妹们能喜欢,同学们快快来学习一下吧!

什么是元组?

元组是一个固定长度, 不可改变的Python序列对象。 创建元组的最简单方式, 是用

逗号分隔一列值:

>>> tup = 4, 5, 6>>> tup(4, 5, 6)

当用复杂的表达式定义元组, 最好将值放到圆括号内, 如下所示:

>>> b=(4, 5, 6), (7, 8)>>> b((4, 5, 6), (7, 8))
元组的一些操作

1.元组的替换、拆分

用 tuple 可以将任意序列或迭代器转换成元组:

(1)字符串能自动拆分成各个字母

>>> c=tuple('string') #tuple方法>>> c('s', 't', 'r', 'i', 'n', 'g')

(2)拆分序列

>>> tuple([1,2,3])(1, 2, 3)

(3)元组中存储的对象可能是可变对象。 一旦创建了元组, 元组中的对象就不能修改

了;但,如果元组中的某个对象是可变的, 比如列表, 可以在原位进行修改:

>>> d=tuple(['foo', [1, 2], True])>>> d('foo', [1, 2], True)>>> d[0]'foo'>>> d[1][1, 2]>>> d[2]True>>> d[1].append(10) #list可修改,在原位修改list>>> d('foo', [1, 2, 10], True)>>> d[2]=False #元组不可修改,修改元组会出错Traceback (most recent call last):File "<pyshell#122>", line 1, in <module>d[2]=FalseTypeError: 'tuple' object does not support item assignment
2.元组的"+"、"*"运算

可以用加号运算符(+)将元组串联起来:

>>> (4, None, 'foo') + (6, 0) + ('bar',)(4, None, 'foo', 6, 0, 'bar')

可以用乘号运算符(*)将元组复制串联:

>>> ('foo', 'bar') * 4('foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'bar')>>> (1,2,3)*3(1, 2, 3, 1, 2, 3, 1, 2, 3)

3.拆分元组

元组数据不可修改,但是元组可以方便的赋值给其他变量,数量相同时,可以一次赋值给多个变量。

>>> a=4,5,6 #创建一个元组>>> a #创建的元组的值(4, 5, 6)>>> a,b,c=a #元组赋值给新变量a,b,c>>> a4>>> b5>>> c6

元组中嵌套的元组也会被拆分赋值

>>> a,b,c=1,2,(0,8)>>> c(0, 8)>>> d,e,(f,g)=1,2,(0,8)>>> f0

直接交换两个变量

>>> a,b=1,2>>> a1>>> b2>>> a,b=b,a>>> a2>>> b1

变量拆分常用来迭代元组或列表序列:

>>> seq=[(1,2,3),(4,5,6),(7,8,9)]>>> for a,b,c in seq:print('a={0},b={1},c={2}'.format(a,b,c))a=1,b=2,c=3a=4,b=5,c=6a=7,b=8,c=9

Python最近新增了更多高级的元组拆分功能, 允许从元组的开头"摘取"几个元素。

它使用了特殊的语法 *rest , 这也用在函数签名中以抓取任意长度列表的位置参

数:

>>> values=1,2,3,4,5,6,7>>> a,b,*rest=values #程序员 a,b,*_=values>>> a1>>> b2>>> rest[3, 4, 5, 6, 7]

rest 的部分是想要舍弃的部分, rest的名字不重要。 作为惯用写法, 许多Python

程序员会将不需要的变量使用下划线:

4.tuple方法

因为元组的大小和内容不能修改, 它的实例方法都很轻量。 其中一个很有用的就

是 count ( 也适用于列表) , 它可以统计某个值得出现频率:

>>> tup=a,a,a,b,b,c>>> tup.count(a)3

标签: #python中元组