- 元组也是一个序列,既能像列表那样同时容纳多种不同的对象,也拥有字符串不可变的特性。
列表 - [元素1, 元素2, 元素3, …]
元组 - (元素1, 元素2, 元素3, …)
-
元组不用小括号,直接用逗号隔开元素也可以,
元组也可以通过下标来获取元素,
-
元组是不可变的,所以试图修改元组内容的行为是不可行的
-
元组也支持切片操作,因为切片的含义是将目标对象的元素以某种特定的组合导出,而非修改对象本身。
-
让整个元组给倒过来,这里需要注意不是将元祖原地进行一个反转,而是经过切片之后导出一个新的对象。
-
由于元组不支持修改操作,所以不用考虑“增、删、改”,主要是用到查。主要是用到count和index方法。
-
元祖中加号和乘号两个运算符也是可以使用的;
-
元组也支持嵌套和迭代;
-
元组同样支持列表推导式,但是不存在元组推导式,他是一个生成器,后面会学到:
10 如何生成只有一个元素的元组,这样的写法是不对的;
应当这样写:
-
生成一个元组也可以称之为打包,对应的将他们一次性赋值给三个变量名的行为称之为解包;
-
其实它不仅仅适用于元组,也适用于任何序列类型比如说列表,字符串。这里需要注意赋值后左边的变量名数量必须和右侧序列的元素数量一致,否则就会报错。
-
解决办法是在需要赋值的最后一个变量名前面加上一个星号,右边序列剩下的元素就会全部赋值给它:
-
关于多重复值,背后实现逻辑就是先通过元组进行打包,再将元组进行解包:
-
元组中的元素是不可变的,但是如果元祖中的元素是指向一个可变的列表,那我们依然可以修改列表里的内容的。