元组与序列一样,也是一种序列。唯一不同的是元组不能被修改。
创建元组的方法很简单,如果你用逗号隔开了一些值,那么你就自动创建了元组。
1,2,3
(1, 2, 3)
(1,2,3)
(1, 2, 3)
//空元组
()
()
//一个值得元组
42
42
**42,
(42,)**
**(42,)
(42,)**
(42)
42
3 * (40 + 2)
126
3 * (40 + 2,)
(42, 42, 42)
tuple函数
tuple([1,2,3])
(1, 2, 3)
tuple(‘abc’)
(‘a’, ‘b’, ‘c’)
tuple((1,2,3))
(1, 2, 3)
元组基本操作
参考序列的基本操作
x = 1,2,3
x[1]
2
x[0:2]
(1, 2)
x[-1::-1]
(3, 2, 1)
1 in x
True
(1,) in x
False
y = ((1,),(2,),3)
(1,) in x
False
(1,) in y
True
3 in y
True
y[-1::-1]
(3, (2,), (1,))
x + y
(1, 2, 3, (1,), (2,), 3)
x * 3
(1, 2, 3, 1, 2, 3, 1, 2, 3)
元组的意义
- 元组可以在映射中当作键使用——而列表则不行
- 元组作为很多内建函数和方法的返回值存在,也就是说你必须对元组进行处理。只要不尝试修改元组,那么,“处理”远足在绝大多数情况下就是把他们当作列表来进行操作。
一般来说,列表可能更能满足对序列的所有需求。
小结
- 序列:序列是一种数据结构,它包含的元素都进行了编号(从0开始)。典型的序列包括列表,字符串和元组。其中,列表是可变的(可以进行修改),而元组和字符串是不可变的(一旦创建了就是固定的)。通过分片操作可以访问序列的一部分,其中分片需要两个索引号来指出分片的起始和结束位置。想改变列表,则要对相应的位置进行赋值,或者使用赋值语句重写整个分片。
- **成员资格:**in操作符可以检查一个值是否存在于序列(或者其他容器)中。对字符串使用in操作符是一个特例,他可以查找子字符串。
- 方法:一些内建类型(例如列表和字符串,元组则不在其中)具有很多有用的方法。这些方法有些像函数,不过他们与特定值联系得更密切。方法是面向对象编程的一个重要概念。
字符串修改需要先使用list()函数转换成列表在进行操作