Python 元组

简介: 除了两个方面,数据类型几乎与列表数据类型一样。首先,元组输入时用圆括号(),而不是用方括号[]元组与列表的主要区别还在于,元组像字符串一样,是。如果元组中只有一个值,你可以在括号内该值的后面跟上一个逗号,表明这种情况。否则,Python 将认为,你只是在一个普通括号内输入了一个值。逗号告诉 Python,这是一个元组(不像其他编程语言,Python 接受列表或元组中最后表项后面跟的逗号)。利用你可以用元组告诉所有读代码的人,你不打算改变这个序列的值。如果需要一个永远不会改变的值的序列,就使用元组。

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页:小嗷犬的博客
🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。
🥭本文内容:Python 元组
更多内容请见👇

除了两个方面,元组数据类型几乎与列表数据类型一样。

用圆括号()表示

首先,元组输入时用圆括号 (),而不是用方括号 []
tp = ('Python', 'Java', 'C')
print(tp)

不可变性

元组与列表的主要区别还在于,元组像字符串一样,是 不可变的。元组不能让它们的值被修改、添加或删除:
tp = ('Python', 'Java', 'C')
tp[1] = 'C++'
如果元组中只有一个值,你可以在括号内该值的后面跟上一个逗号,表明这种情况。否则,Python 将认为,你只是在一个普通括号内输入了一个值。逗号告诉 Python,这是一个元组(不像其他编程语言,Python 接受列表或元组中最后表项后面跟的逗号)。
a = ('Python')
print(type(a))
b = ('Python',)
print(type(b))
利用你可以用元组告诉所有读代码的人,你不打算改变这个序列的值。如果需要一个永远不会改变的值的序列,就使用元组。使用元组而不是列表的第二个好处在于,因为它们是不可变的,它们的内容不会变化,Python 可以实现一些 优化,让使用元组的代码比使用列表的代码更快。

1.创建元组

在 Python 中,创建列表通常用 tuple 函数或圆括号 ()。

1.1 tuple 函数

list()函数类似, tuple()可以将参数中的可迭代对象转换成元组:
a = tuple('Python')
print(a)
b = tuple(['Python', 'Java', 'C'])
print(b)

1.2 圆括号

使用圆括号 ()创建列表时,需要在列表中列出所有元素:
a = ('Python', 'Java', 'C')
print(a)
直接使用圆括号 ()将得到一个空的元组:
a = ()
print(a)

2.多重赋值

在 Python 中, 允许一次给多个变量赋值, 称为多重赋值。 可以使用元组和列表实现多重赋值:
a, b, c = ('Python', 'Java', 'C')
print(a, b, c, sep='\n')

3.元组特性

在列表操作中, 除了对列表进行原地修改的方法, 其他方法都可以应用在元组中, 例如索引、分片、连接和重复等,与列表不同的是,在元组中使用这些方法,会返回新的元组,而不是列表。

3.1 单个元素的元组

如果仅仅使用圆括号把一个值括起来, Python 会认为是表达式, 得到的不会是元组类型,而是值本身的类型:
a = (3.14)
print(type(a))
所以,如果确实希望得到一个包含单个元素的元组,需要在这一单个元素后面加上一个逗号,与表达式区分开来:
a = (3.14,)
print(type(a))

3.2 可以省略的圆括号

在不引起歧义的情况下,可以省略圆括号:
a = 'Python', 'Java', 'C'
print(type(a))

3.3 不可变性

不可变性也是元组和列表最大的区别。 如果试图修改元组的某个元素, 将会触发 TypeError 的异常:
a = ('Python', 'Java', 'C')
a[1] = 'C#'
元组的不可变性仅指的是不可以改变元组的顶层元素。如果元组中的元素本身是可变的,Python 允许修改其内容:
a = ('Python', ['Java', 'C'], 'Golang', 'C++')
a[1][1] = 'C#'
print(a)

4.为什么需要元组

主要原因如下:

  • 元组占用的空间较小
  • 你不会意外修改元组的值
  • 可以将元组用作字典的键
  • 函数的参数是以元组形式传递的
目录
相关文章
|
19天前
|
存储 缓存 Python
解密 Python 元组的实现原理
解密 Python 元组的实现原理
34 4
|
11天前
|
存储 安全 Serverless
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
24 0
|
14天前
|
存储 JSON 数据处理
分析、总结Python使用列表、元组、字典的场景
分析、总结Python使用列表、元组、字典的场景
18 0
|
17天前
|
存储 自然语言处理 Java
【Python】列表和元组
【Python】列表和元组
18 0
|
18天前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (一)
Python操作:字符串--列表--元组--字典--运算符 (一)
14 0
|
18天前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (二)
Python操作:字符串--列表--元组--字典--运算符 (二)
16 0
|
2月前
|
存储 索引 Python
Python学习笔记----列表、元组和字典的基础操作
这篇文章是一份Python学习笔记,涵盖了列表、元组和字典的基础操作,包括它们的创建、修改、删除、内置函数和方法等。
Python学习笔记----列表、元组和字典的基础操作
|
1月前
|
Python
python推导式-列表,元组,字典,集合推导式
这篇文章介绍了Python中的推导式,包括列表推导式、元组推导式、字典推导式和集合推导式,提供了它们的基本格式和示例代码,并解释了推导式如何简化循环和条件判断的代码编写。
|
2月前
|
存储 缓存 索引
python 的 tuple(元组) 是不是冗余设计?
python 的 tuple(元组) 是不是冗余设计?
|
2月前
|
存储 Python
Python 中的列表和元组
【8月更文挑战第29天】
30 1