零基础入门python3.7 ——基础知识总结(五)元组(tuple)
一 元组 元组也是python的一种数据结构。和列表类似也是由一系列特定序列的元素组成 二 元组与列表的区别 列表是可变的。 包括添加元素删除元素等。元组一旦被创建就是不可变的 列表可以出现相同的元素。 元组不会存在相同的元素。 即使有相同的元素只会保留一个其他会被忽略。 三 元组的创建 使用()创建元组 tuple1 = (1, 2, 34, 'java', 'python', 'java') print(tuple1) tuple2 = ("python", True, ) print(tuple2) (1, 2, 34, 'java', 'python', 'java') Python中的元组是一种基本的数据结构,它与列表相似,但具有关键的不同点。元组是由一系列有序元素组成的,这些元素可以是任何数据类型,包括数字、字符串、布尔值甚至是其他元组。元组的主要特性是它们是不可变的,这意味着一旦创建了元组,就不能对其中的元素进行添加、删除或修改操作。 元组与列表的区别在于其可变性。列表是动态的,允许添加、删除和修改元素,而元组一旦创建就固定不变。这也意味着在元组中,即使有相同的元素,系统也不会创建多个副本,只会保留一个。例如,`(1, 2, 2)`这样的元组只会有一个`2`。 创建元组时,通常使用圆括号`()`来包围元素,但也可以不使用括号,只要元素之间用逗号分隔即可。例如,`1, 2, 3`也是一个有效的元组。当创建只有一个元素的元组时,为了区分它是元组而非其他类型,需要在元素后面加上一个逗号,如`(1,)`。 Python提供了一些内置方法将其他数据类型转换为元组。例如,可以使用`tuple()`函数将字符串、列表、字典、甚至区间对象转换为元组。下面是一些示例: ```python # 字符串转元组 a = tuple("hello") print(a) # 列表转元组 b = tuple([1, 1, 2, 2, "java", 'python']) print(b) # 字典转元组 c = tuple({a: 100, b: "java", 1: "python"}) print(c) # 区间转元组 d = tuple(range(0, 10)) print(d) ``` 元组的访问类似于列表,可以通过索引或切片来获取元素。比如: ```python # 访问元组元素 d = tuple(range(0, 10)) print(d[3]) # 输出:3 # 切片元组 print(d[3:]) # 输出:(3, 4, 5, 6, 7, 8, 9) ``` 由于元组的不可变性,尝试修改元组元素会导致错误,除非元素本身是可变类型如列表。例如: ```python tuple1 = (1, 2, 34, 'java', 'python', 'java', [1, 2]) print(tuple1) tuple1[6][0] = 'java' # 这里修改的是列表元素,而不是元组元素 print(tuple1) ``` 在上述例子中,尽管看起来元组的最后一个元素改变了,实际上元组并没有变,因为它的最后一个元素是一个列表,列表是可以修改的。元组`tuple1`仍然指向同一个列表,只是列表中的元素值发生了变化。 至于元组的删除,由于元组本身不可变,不能直接删除或替换元组中的元素。但是,可以删除整个元组,使用`del`语句: ```python del tuple1 ``` 这将完全删除`tuple1`,使其不再存在于内存中。然而,如果元组作为其他变量的引用,即使删除了变量,元组本身仍可能存在于内存中,直到所有引用都消失。因此,要彻底删除元组,需要确保没有其他地方引用它。
- 粉丝: 6
- 资源: 949
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 离线json格式化html
- 训练强化学习代理来调整传统控制Matlab代码.rar
- 一种基于马尔可夫决策过程的强化学习的方法Matlab代码.rar
- 一种基于信息论工具估计源数量的源枚举算法matlab代码.rar
- 一种高效且有效的全参考分析方法,即感知误差对数(PEL),用于测量与主观评价一致的图像质量Matlab代码.rar
- 一种适用于非均匀介质中粘声波传播的高效短记忆算法,对应matlab代码 matlab代码.rar
- 一种用于模拟MicroGrid中能源竞价问题的强化学习代理Matlab代码.rar
- 移动无人机编队控制的MATLAB项目.rar
- 用于处理试验多通道时间序列的库 matlab代码.rar
- 用于分析2维光谱相关性,同步与异步光谱,模拟高斯,劳伦斯曲线分析。matlab代码.rar
- 用于分析无人机结构的matlab代码.rar
- 用于监督线性降维(SLDR)的MATLAB工具箱,包括LDA、HLDA、PLSDA、MMDA、HMMDA和SDA.rar
- 用于漂移扩散半导体建模的Matlab代码.rar
- 用于评估V形编队的拟议多无人机覆盖策略的性能Matlab代码.rar
- 用于在恒定重力下使用自适应ZEM-ZEV操纵航天器的深度强化学习(DRL)Matlab代码.rar
- 用于四旋翼无人机的地面站监控程序,MATLAB源码,可直接运行.rar
评论0