社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python不可变对象元组(tuple)详解

若数 • 6 年前 • 766 次点击  
阅读 7

Python不可变对象元组(tuple)详解

概述

元组和列表很相似,不过元组是不能在原处改变的对象,这点性质和字符串一致,虽然元组不支持任何方法调用,但是元组具有列表的大多数属性,以下是元组的一些特性。

  • 支持索引和切片 既可以通过索引和切片读取元组内的数据
  • 固定长度 由于元组为不可变的序列,所以是不能在生成一个拷贝的情况下进行增删的
  • 任意嵌套 即元组和列表、字典都支持其他的复合对象,比如其他的元组,字典,列表等

常见使用示例

一些基础定义

# 空元组
T = ()

# 简单元组
T = (1, 2, 3, 4)
print(T)

# 嵌套元组
T = (1, (2, 3), 4)
print(T[1][1])
复制代码

示例结果:

(1, 2, 3, 4)
3
复制代码

元组转化的简单使用

# 字符串转元组
T = tuple('PYTHON')
print(T)

# 列表转元组
L = list("PYTHON")
T = tuple(L)
print(T)
复制代码

示例结果:

('P', 'Y', 'T', 'H', 'O', 'N')
('P', 'Y', 'T', 'H', 'O', 'N')
复制代码

索引和切片

T = (1, 2, 3, 4, 5)
# 索引
print(T[3])
# 切片
print(T[2:4])
复制代码

示例结果:

4
(3, 4)
复制代码

简单迭代

for循环迭代元组
T = (1, 2, 3, 4, 5)
for t in T:
    print(t * 10)
复制代码

示例结果:

10
20
30
40
50
复制代码

列表推导

T = (1, 2, 3, 4, 5)
L = [x * 10 for x in T]
print(L)
复制代码

示例结果:

[10, 20, 30, 40, 50]
复制代码

元组使用要义

当我们在学习元组时,总是会纳闷已经有了列表为什么还需要学习使用元组看似鸡肋的内置对象呢? 我们可以通过元组的不可变性运用在一些场景中,因为其不可变性本身本身就提供了某种完整性,比如使用元组来实现函数的多返回值,作为参数传递给函数调用、或是从函数调用那里获得参数时,保护其内容不被外部接口修改。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/33283
 
766 次点击