Python - 数据容器tuple(元组)

简介: Python - 数据容器tuple(元组)

定义元组

元组同列表一样,都是可以封装多个、不同类型的元素在内。

但最大的不同点在于:

元组一旦定义完成,就不可修改

元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。

元组也支持嵌套:

t1=(1,"hello",False)
print(t1)
print(type(t1))
t11="a",1,True
print(t11)
print(type(t11))
t2=((1,2,3),[4,5,6])
print(t2[0][-1])
print(t2[1][0])

(1, 'hello', False)

<class 'tuple'>

('a', 1, True)

<class 'tuple'>

3

4


注意:元组只有一个数据,这个数据后面要添加逗号

t1=("hello",)
t2=("hello")
print(t1)
print(type(t1))
print(t2)
print(type(t2))

('hello',)

<class 'tuple'>

hello

<class 'str'>

否则类型为字符串,而不是元组

元组的相关操作

除了不可修改,元组与列表的操作几乎一模一样

修改元组

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

my_tuple1=("hello",[1,2,3])
my_tuple2=(True,666)
t=my_tuple1+my_tuple2
print(t)

('hello', [1, 2, 3], True, 666)

值得注意的是 :

不可以修改元组的内容,否则会直接报错

my_tuple=("hello",[1,2,3])
my_tuple[1]=[4,5,6]

但可以修改元组内的list的内容(修改元素、增加、删除、反转等)

my_tuple=("hello",[1,2,3])
#my_tuple[1]=[4,5,6]
my_tuple[1][0]=True
print(my_tuple)

('hello', [True, 2, 3])


甚至可以提出来修改

my_tuple1=("hello",[1,2,3])
list_1=my_tuple1[1]
list_1[0]=666
print(my_tuple1)

('hello', [666, 2, 3])

元组的删除

不可用pop,只能用del全删

my_tuple1=("hello",[1,2,3])
#tmp=my_tuple1.pop(0)
del my_tuple1
print(my_tuple1)

报错:因为已经将my_tuple1连同名字都删了


Traceback (most recent call last):

 File "C:\顺序.py\y.py", line 5, in <module>

   print(my_tuple1)

NameError: name 'my_tuple1' is not defined

转换为元组tuple

my_list = [1, 2, 3, 4, 5]
my_tuple = (1, 2, 3, 4, 5)
my_str = "abcdefg"
my_set = {1, 2, 3, 4, 5}
my_dict = {"key1": 1, "key2": 2, "key3": 3, "key4": 4, "key5": 5}
# 类型转换: 容器转元组
print(f"列表转元组的结果是:{tuple(my_list)}")
print(f"元组转元组的结果是:{tuple(my_tuple)}")
print(f"字符串转元组结果是:{tuple(my_str)}")
print(f"集合转元组的结果是:{tuple(my_set)}")
print(f"字典转元组的结果是:{tuple(my_dict)}")

列表转元组的结果是:(1, 2, 3, 4, 5)

元组转元组的结果是:(1, 2, 3, 4, 5)

字符串转元组结果是:('a', 'b', 'c', 'd', 'e', 'f', 'g')

集合转元组的结果是:(1, 2, 3, 4, 5)

字典转元组的结果是:('key1', 'key2', 'key3', 'key4', 'key5')


总结:

经过上述对元组的学习,可以总结出列表有如下特点:

  1. 可以容纳多个数据
  2. 可以容纳不同类型的数据(混装)
  3. 数据是有序存储的(下标索引)
  4. 允许重复数据存在
  5. 不可以修改(增加或删除元素等)
  6. 支持for循环

多数特性和list一致,不同点在于不可修改的特性。

相关文章
|
2月前
|
移动开发 前端开发 HTML5
Twaver-HTML5基础学习(20)数据容器(3)_数据的批量加载(节省性能方法)
本文介绍了Twaver HTML5中数据的批量加载方法,通过使用`box.startBatch()`可以在大量数据加载时提高性能。文章通过示例代码展示了如何在React组件中使用批量加载功能,以减少界面重绘次数并提升效率。
55 1
Twaver-HTML5基础学习(20)数据容器(3)_数据的批量加载(节省性能方法)
|
2月前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
44 1
|
2月前
|
XML 移动开发 JSON
Twaver-HTML5基础学习(18)数据容器(1)_增删查改、遍历数据容器、包含网元判断
本文介绍了Twaver HTML5中的数据容器(DataBox),包括如何进行增删查改操作、遍历数据容器以及判断网元是否存在于数据容器中。DataBox用于管理所有的网元对象,如ElementBox、LayerBox、AlarmBox等,并通过示例代码展示了其常用方法的使用。
46 1
Twaver-HTML5基础学习(18)数据容器(1)_增删查改、遍历数据容器、包含网元判断
|
2月前
|
存储 索引 Python
python中的数据容器
python中的数据容器
|
2月前
|
Python
Python中的tuple:探索其强大功能与实用技巧
Python中的tuple:探索其强大功能与实用技巧
27 1
|
3月前
|
存储 缓存 索引
python 的 tuple(元组) 是不是冗余设计?
python 的 tuple(元组) 是不是冗余设计?
|
3月前
|
安全 网络安全 数据安全/隐私保护
云原生技术探索:容器化与微服务架构的实践之路网络安全与信息安全:保护数据的关键策略
【8月更文挑战第28天】本文将深入探讨云原生技术的核心概念,包括容器化和微服务架构。我们将通过实际案例和代码示例,展示如何在云平台上实现高效的应用部署和管理。文章不仅提供理论知识,还包含实操指南,帮助开发者理解并应用这些前沿技术。 【8月更文挑战第28天】在数字化时代,网络安全和信息安全是保护个人和企业数据的前线防御。本文将探讨网络安全漏洞的成因、加密技术的应用以及提升安全意识的重要性。文章旨在通过分析网络安全的薄弱环节,介绍如何利用加密技术和提高用户警觉性来构建更为坚固的数据保护屏障。
|
3月前
|
监控 安全 网络安全
|
6天前
|
Kubernetes 监控 开发者
掌握容器化:Docker与Kubernetes的最佳实践
【10月更文挑战第26天】本文深入探讨了Docker和Kubernetes的最佳实践,涵盖Dockerfile优化、数据卷管理、网络配置、Pod设计、服务发现与负载均衡、声明式更新等内容。同时介绍了容器化现有应用、自动化部署、监控与日志等开发技巧,以及Docker Compose和Helm等实用工具。旨在帮助开发者提高开发效率和系统稳定性,构建现代、高效、可扩展的应用。
|
2天前
|
关系型数据库 MySQL API