Python快速上手系列--元组--详解篇

简介: Python快速上手系列--元组--详解篇

上一章的列表内容有点多,需要时间进行消化。本篇来看看与其类似,但又不同的一个内容。

元组

元组使用小括号(),也称为圆括号来表示。也可以不使用这样的方式,直接用,隔开就好。看例子:

# 定义一个元组
fly= '清安','有一个小屋'
print(type(fly))
fly1 = ('小屋','很不错')
# 我们可以像列表那样打印它
print(fly1[0])
print(fly1[1])
# <class 'tuple'>
# 小屋
# 很不错

元组也能跟range搭配使用,快速的生成一个元组出来:

b = tuple(range(6))
print(b)
# (0,1,2,3,4,5)

元组可以像列表一样进行打印,但是却不能像列表那样进行修改元素值

# 定义一个元组,
fly = (200, 20)
# 修改元素的值,这操作是不允许的
# fly[0] = 100
# 我们可以像列表一样用索引获取它的值
print(fly[0])
print(fly[1])

修改元组的元素,python就会报错!告诉你fly[0] = 100,这里是不可行的。如下的例子也是一样:

t = ('a', 'b', ['A', 'B'])
t[2][0] = 'X'
t[2][1] = 'Y'

遍历

# 定义一个元组,
fly = (200, 20, 30)
for fly_num in fly:
    print(fly_num)

写法其实跟列表的没什么太大的区别,都是通过定义变量fly_num去循环元组的变量fly然后进行打印。

修改元组

我们上一个例子中元组的两个值虽然不能直接的改变,但是我们可以重新定义变量!!!

# 定义一个元组,
fly = (200, 20)
for fly_num in fly:
    print(fly_num)
# 再次定义一个相同的变量
fly = (400,40)
# 使用上一个相同的变量进行for循环
for fly_num in fly:
    print(fly_num)

这样子我们的fly变量的值就改变了,这样子写在python中也是允许的,合法的,就是麻烦了点啦!

元组还是跟列表有一定区别,最为明显的就是元组用()表示,列表用[]表示,可别看错了。元组也是不可变的,不能像字符串一样被修改,添加,删除。

list_number = ('tom','luci','xifa','BOB')
list_number[1] = 'mm'
print(list_number)

这里用下标值进行修改,就会报出对象不支持分配的错误,如:

Traceback (most recent call last):
  File "D:/Python/TuLing/草稿.py", line 20, in <module>
    list_number[1] = 'mm'
TypeError: 'tuple' object does not support item assignment

注意:这是一个错误的例子!!!

类型转换

list_number = ('tom','luci','xifa','BOB')
print(list(list_number))
# 元组转换成列表:
# ['tom', 'luci', 'xifa', 'BOB']
list_number = ['tom','luci','xifa','BOB']
print(tuple(list_number))
# 列表转换成元组:
# ('tom', 'luci', 'xifa', 'BOB')

取值

元组取值也是用下标取值的

list_number = ('tom','luci','xifa','BOB','清安无别事')
print(list_number[-1])
# 其结果是
# 清安无别事

排序

c = (4,6,2,1)
print(tuple(sorted(c)))
# (1, 2, 4, 6)

要知道sorted函数是对原有的元组或者列表进行拷贝一次,然后对拷贝后的元组或列表进行修改。

zip方法

c = (4,6,2,1)
d = (1,2,3,4)
# zip返回列表对象,一一对应的关系
f = zip(d,c)
print(list(f))
# [(1, 4), (2, 6), (3, 2), (4, 1)]

这里的list只起转换的作用。这里你会发现zip会拿d的0索引位跟c的0索引位进行相匹配,然后依次匹配。这是zip方法的一个特殊的用处。

列表推导式

列表中有推导式,元组也是有的。

g = (aa*2 for aa in range(5))
print(tuple(g))
# (0, 2, 4, 6, 8)

总结

1.元组的核心特点是:不可变序列。

2.元组的访问和处理速度比列表快。

3.与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。

目录
相关文章
|
1月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
127 4
|
5月前
|
人工智能 前端开发 数据处理
如何将Python元组转换为列表
本文介绍了在Python中将元组转换为列表的方法。通过内置的`list()`函数,可以轻松地将一个元组转换为列表。此外,文章还提供了如何使用列表推导式和`itertools.chain()`方法将包含多个元组的列表展平为单一列表的示例。这些方法对于数据处理和转换非常实用,能够帮助开发者高效操作序列类型数据。文中附有代码实例及输出结果,便于理解与实践。
137 0
|
8月前
|
存储 人工智能 索引
Python数据结构:列表、元组、字典、集合
Python 中的列表、元组、字典和集合是常用数据结构。列表(List)是有序可变集合,支持增删改查操作;元组(Tuple)与列表类似但不可变,适合存储固定数据;字典(Dictionary)以键值对形式存储,无序可变,便于快速查找和修改;集合(Set)为无序不重复集合,支持高效集合运算如并集、交集等。根据需求选择合适的数据结构,可提升代码效率与可读性。
|
9月前
|
安全 数据处理 索引
深入探讨 Python 列表与元组:操作技巧、性能特性与适用场景
Python 列表和元组是两种强大且常用的数据结构,各自具有独特的特性和适用场景。通过对它们的深入理解和熟练应用,可以显著提高编程效率和代码质量。无论是在数据处理、函数参数传递还是多线程环境中,合理选择和使用列表与元组都能够使得代码更加简洁、高效和安全。
244 9
WK
|
Python
python元组与列表的转换
在 Python 中,元组(tuple)和列表(list)是两种常用的数据结构,它们之间可以相互转换
WK
433 9
WK
|
Python
Python创建元组
必须在这个元素后面加上一个逗号,否则 Python 会把它当作一个普通的带圆括号的表达式而不是元组
WK
191 4
WK
|
数据处理 Python
Python空元组作用有哪些
空元组在Python中可能不像包含元素的元组那样直接用于数据处理,但它们仍然可以在多种情境下发挥重要作用
WK
186 2
|
存储 缓存 Python
解密 Python 元组的实现原理
解密 Python 元组的实现原理
235 4
|
存储 缓存 索引
python 的 tuple(元组) 是不是冗余设计?
python 的 tuple(元组) 是不是冗余设计?
236 4
|
Python
Python多维列表(元组)合并成一维形式
Python多维列表(元组)合并成一维形式
134 2