Python——元组

在 Python 中,元组由内置的 tuple 类型定义。

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

一. 创建元组

  • 元组使用小括号,列表使用方括号。
  • 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
  • 如果你使用逗号分隔了一些值,就会自动创建元组。
  • 创建包含一个值的元组,必须在括号中的元素家一个逗号。
>>> 1,2,3
(1, 2, 3)
>>> tup = 1, 5.5, 'Python'   # 创建元组时可以没有括号,也称为元组包装
>>> tup
(1, 5.5, 'Python')
>>> tup = ()            #创建空元组
>>> tup
()
>>> tup = ('P', 'y', 't', 'h', 'o', 'n')   # 字符串类型元组
>>> tup
('P', 'y', 't', 'h', 'o', 'n')
>>> tup = (1, 5.5, 'Python')   # 混合类型元组
>>> tup
(1, 5.5, 'Python')
>>> tup = (6, 'Python', ('P', 'y', 't', 'h', 'o', 'n'))  # 嵌套元组
>>> tup
(6, 'Python', ('P', 'y', 't', 'h', 'o', 'n'))
>>> a, b, c = tup       # 元组解包
>>> a
6
>>> b
'Python'
>>> c
('P', 'y', 't', 'h', 'o', 'n')
>>> ##########创建包含一个元素的元组#########
...
>>> tup = ('Python')  # 只有括号
>>> tup
'Python'
>>> type(tup)
<class 'str'>
>>> tup = ('Python',)  # 在元素后面添加逗号
>>> tup
('Python',)
>>> type(tup)
<class 'tuple'>

 

二. tuple 函数

tuple 函数的功能和 list 函数基本一样,都是以一个序列作为参数,并把它转换为元组。如果参数是元组,参数就会被原样返回。

>>> tuple(['Hello','World'])
('Hello', 'World')
>>> tuple('hello')
('h', 'e', 'l', 'l', 'o')
>>> tuple('hello',)
('h', 'e', 'l', 'l', 'o')
>>> tuple(('Hello', 'World'))   #参数是元组
('Hello', 'World')

 

三. 元组的基本操作

 

1. 访问元组

元组可以使用下标索引来访问元组中的值。

>>> tup = ('P', 'y', 't', 'h', 'o', 'n')
>>> tup[0]              #访问第 1 个元素
'P'
>>> tup[-2]             #访问倒数第 2 个元素(反向索引)
'o'
>>> tup[1:4]            #访问第 2 个到第 4 个元素
('y', 't', 'h')
>>>
>>> tup[:-3]            #从开始到倒数第 3 个元素
('P', 'y', 't')
>>> tup = (6, 'Python', ('P', 'y', 't', 'h', 'o', 'n'))  # 嵌套元组
>>>
>>> tup[2][3]           #嵌套索引
'h'

 

2. 修改元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合。

元组是不可变的,但是如果元素本身是一个可变数据类型的列表,那么其嵌套项可以被改变。

>>> tup0 = ('Hello','World')
>>> tup1 =(1,2,3)
>>> tup3 = tup0 + tup1          #创建一个新元组
>>> print(tup3)
('Hello', 'World', 1, 2, 3)
>>>
>>>
>>> tup = (6, 'Python', ['P', 'y', 't', 'h', 'o', 'n'])
>>> tup[0] = 5                  #不能改变元素
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>>
>>> tup[2][2] = 's'            #嵌套项可以被改变
>>> print(tup)
(6, 'Python', ['P', 'y', 's', 'h', 'o', 'n'])

 

3. 删除元组

元组中的元素值是不允许删除的,但可以使用  del  语句来删除整个元组。

>>> tup = ('P', 'y', 't', 'h', 'o', 'n')
>>>
>>> del tup[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion
>>>
>>> del  tup            #删除整个元组
>>> tup
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'tup' is not defined

 

4. 元组运算符

与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

Python 表达式结果描述
len((1, 2, 3))3计算元素个数
(1, 2, 3) + (4, 5, 6)(1, 2, 3, 4, 5, 6)连接
('Hi!',) * 4('Hi!', 'Hi!', 'Hi!', 'Hi!')复制
3 in (1, 2, 3)True元素是否存在
for x in (1, 2, 3): print (x,)1 2 3迭代

5. 元组索引,截取

因为元组也是一个序列,所以可以访问元组中的指定位置的元素,也可以截取索引中的一段元素。

>>> tup =(1,2,3)
>>> tup[2]              #读取第三个元素
3
>>> tup[-2]             #反向读取;读取倒数第二个元素
2
>>> tup[1:]             #截取元素,从第二个开始后的所有元素
(2, 3)

 

四. 元组内置函数

 

1. 元组的方法

通过 dir() 来查看方法列表:

>>> dir(tuple)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', 
'__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', 
'__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', 
'__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', 
'__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
方法描述
index()返回第一个匹配项的索引
count()统计某个元素在列表中出现的次数
>>> tup = ('P', 'y', 't', 'h', 'o', 'n')
>>>
>>> tup.index('y')               # 返回第一个匹配 'y' 的索引
1
>>> tup.count('h')              ## 统计 'h' 在元组中出现的次数
1

 

2. 元组内置函数

函数描述
all()如果元组中的所有元素都是 True(或者元组为空),则返回 True。
any()如果元组中的所有元素都是 True,则返回 True;如果元组为空,则返回 False。
enumerate()返回一个枚举对象,其中包含了元组中所有元素的索引和值(配对)。
len()返回元组的长度(元素个数)
max()返回元组中的最大项
min()返回元组中的最小项
sorted()返回一个新的排序元组(不排序元组本身)
sum()返回元组的所有元素之和
tuple()将 iterable(字符串、列表、集合、字典)转换为元组
>>> tup = ('P', 'y', 't', 'h', 'o', 'n')
>>> len(tup)
6
>>> max(tup)
'y'
>>> min(tup)
'P'
>>> list = ['P', 'y', 't', 'h', 'o', 'n']
>>> list
['P', 'y', 't', 'h', 'o', 'n']
>>> tup = tuple(list)
>>> tup
('P', 'y', 't', 'h', 'o', 'n')
>>> sorted(tup)
['P', 'h', 'n', 'o', 't', 'y']
>>> sum(tup)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值