企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 元组 Tuple `Tuple`用`( )`表示,可以理解为一个固定列表,一旦初始化就不能再修改,只能对元素进行查询。 ## 特点 * 元素只读,不支持对元素进行添加、修改(删除) * 代码更安全 * 内置大多数方法和`List`差不多 ## 基础操作 ```python tuple1 = ('play', 'algorithm', 'python', 2019, 5.11, 'python') # 空元组 empty_tup = () # 只有一个元素的元组,需要最后添加逗号,如果不加逗号,两边的括弧会被认为是数学公式中的小括号 one_item_tup = ('Tommy',) print('元组示例:', tuple1) print('空元组:', empty_tup) print('只有一个元素的元组:', one_item_tup) # 截取、*、判断元素是否存在、迭代等操作同列表 print('截取、+、*、判断元素是否存在、迭代等操作同列表') ``` **输出结果** ``` 元组示例: ('play', 'algorithm', 'python', 2019, 5.11, 'python') 空元组: () 只有一个元素的元组: ('Tommy',) 截取、+、*、判断元素是否存在、迭代等操作同列表 ``` ## 无关闭运算符 任何以逗号分隔的无符号对象,默认为元组 ```python m = 'play', 'algorithm', 'python', 18+6.6j, -4.24e93 x, y = 1, 2 print('m的值是:', m) print('x, y的值是:', x, y) ``` **输出结果** ``` m的值是: ('play', 'algorithm', 'python', (18+6.6j), -4.24e+93) x, y的值是: 1 2 ``` ## 基础函数 ```Python print('len(tuple) min(tuple) max(tuple)和列表用法相同') print("Str对象转为Tuple tuple('Tommy'):", tuple('Tommy')) ``` **输出结果** ``` len(tuple) min(tuple) max(tuple)和列表用法相同 Str对象转为Tuple tuple('Tommy'): ('T', 'o', 'm', 'm', 'y') ``` ## 震惊,元组居然能改变? 先来看一个例子: ```python tuple = ('play', 'algorithm', 'python', ['Tommy','ChaoChao']) print('原始tuple为:', tuple) # 修改Tommy为liuzhen153,ChaoChao为chaochaoZ tuple[3][0] = 'liuzhen153' tuple[3][1] = 'chaochaoZ' print(tuple) print('修改了某些内容的tuple为:', tuple) # 在['liuzhen153', 'chaochaoZ']里新增wsqStar tuple[3].append('wsqStar') print('添加了某些内容的tuple为:', tuple) ``` **输出结果** ``` 原始tuple为: ('play', 'algorithm', 'python', ['Tommy', 'ChaoChao']) ('play', 'algorithm', 'python', ['liuzhen153', 'chaochaoZ']) 修改了某些内容的tuple为: ('play', 'algorithm', 'python', ['liuzhen153', 'chaochaoZ']) 添加了某些内容的tuple为: ('play', 'algorithm', 'python', ['liuzhen153', 'chaochaoZ', 'wsqStar']) ``` **分析** 这里看似元组中的元素改变了,其实可以看出,元组中的第四个元素是一个列表,我们改变的是列表中的值,元组所指的这个元素是『列表』并没有改变。 这个涉及到`Python`中的可变对象和不可变对象,`List`是可变对象,`Tuple`便是不可变对象。 # 代码库地址 [https://github.com/liuzhen153/play-algorithm-python](https://github.com/liuzhen153/play-algorithm-python)