这是我参与「第四届青训营」笔记创作活动的的第7天
元组
元组和列表非常相似,也是用于存放元素的有序序列。它用的圆括号(())表示,元素写入圆括号中,多个元素时用逗号分隔,如 (1, 2, 3)。
元组同样具有索引,索引使用方式与列表一致。其元素同样可以是任意类型。
看起来元组就是披着圆括号外衣的列表嘛!有什么区别?
元组创建完成后,便不能向其中添加元素,也不能修改和删除其中的任何一个元素。所以它与列表相比,只能查找元素,也就是说只具备读的功能,不具备写的功能。元组的这一特性叫作不可变(性)(Immutable),而列表是可变的(Mutable)。
创建元组
1.创建空的元组
元组 = ()
>>> items = ()
>>> items
()
2.创建包含多个元素的元组
元组 = (元素1, 元素2, ..., 元素N)
>>> items = (1, 2, 3)
>>> items
(1, 2, 3)
3.创建只包含一个元素的元组
只包含一个元素的情况需要单独说明一下,因为它的形式与直觉不相符。
创建只包含一个元素的元组,需要在唯一的那个元素后面加上逗号
元组 = (元素,)
>>> items = (1,)
>>> items
(1,)
这是因为,如果括号中只有一个元素,那么 Python 会将这个括号当作优先级符号进行处理(像数学中的那样),而不是当作元组
>>> items = (1)
>>> items
1
>>> type(items)
<class ‘int’>
元组元素的获取
1.通过索引获取元素
元素 = 元组[索引]
>>> letters = (‘a’, ‘b’, ‘c’)
>>> letters[2]
’c’
2.通过元素获取索引
索引 = 元组.index(元素)
>>> letters = (‘a’, ‘b’, ‘c’)
>>> letters.index(‘c’)
2
3.查看元素是否存在于元组中
布尔值 = 元素 in 元组
>>> letters = (‘a’, ‘b’, ‘c’)
>>> ‘a’ in letters
True
>>> ‘z’ in letters
False
4.统计元素在元组中出现的个数
个数 = 元组.count(元素)
>>> numbers = (1, 2, 2, 3, 4, 5, 5, 7)
>>> numbers.count(5)
2
元组和列表的差别
我们可以看到,元组所具有的操作在使用方式上与和列表非常相似,甚至在一定程度上可以将元组看作是列表的精简版,但它们之间也有明显的差别。
- 元组是不可变的(Immutable),列表是可变的(Mutable),元组在被创建之后,就不能添加、删除和修改元素,而列表可以
- 一般情况下元组的性能在略高于列表
我们在什么时候用列表,什么时候用元组?
列表还是元组,通常性能不是从它们中做选择的主要考虑因素,因为它们之间的性能差异不是很大。我们的选择通常围绕着可变和不可变的特性进行,当我们需要添加元素或修改元素时,使用列表;当我们希望所有元素在创建之后便不再改变,可使用元组。