二、元组(tuple)
「元组」定义语法为:(元素1, 元素2, ..., 元素n)
创建及访问:
创建后就不能对其进行修改,类似字符串
t1 = ((1,2),[3,4])
print(t1,type(t1))
#((1, 2), [3, 4]) <class 'tuple'>
print(t1[0])
#(1,2)
t[0][0] = 3
'''
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
'''
print(t[1])
#[3,4]
t[1][0] = 1
print(t[1])
#[1,4]
print(t1[0:0])
#()
print(t1[:1])
#((1, 2),)
print(t1[0:])
#((1, 2), [1, 4])
print(t1[0:1])
#((1, 2),)
切片:https://docs.python.org/zh-cn/3/c-api/slice.html
https://www.jianshu.com/p/15715d6f4dad
- 创建元组可以用小括号 (),也可以什么都不用,为了可读性,建议还是用 ()。
- 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用
t2 = (1) type(t2) #<class 'int'> t2= 1,23,4 type(t2) #<class 'tuple'> t3 = 8*('123') print(t3) #123123123123123123123123 print(type(t3)) #<class 'str'> t4 = 3*([1,2],) print(t4) #([1, 2], [1, 2], [1, 2]) print(type(t4)) #<class 'tuple'>
删除和更新:
t6 = ('123','qwe','asd')
t6 = ("test",)+t6[1:2]
print(t6)
#('test', 'qwe')
只要元组中的元素可更改,那么我们可以直接更改其元素。
操作:
- 等号操作符:
==
- 连接操作符
+
- 重复操作符
*
- 成员关系操作符
in
、not in
「等号 ==」,只有成员、成员位置都相同时才返回True。
元组拼接有两种方式,用「加号 +」和「乘号 *」,前者首尾拼接,后者复制拼接
t6 = (1,2,3)
t6*=7
print(t6)
#(1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3)
t1 = (123, 456)
t2 = (456, 123)
t3 = (123, 456)
print(t1 == t2) # False
print(t1 == t3) # True
t4 = t1 + t2
print(t4) # (123, 456, 456, 123)
print(123 in t3) # True
print(456 not in t3) # False
内置方法:
元组大小和内容都不可更改,因此只有 count
和 index
两种方法
t = (1, 10.31, 'python')
print(t.count('python')) # 1
print(t.index(10.31)) # 1
解压:
t = (1, 10.31, 'python')
(a, b, c) = t
print(a, b, c)
# 1 10.31 python
t = (1, 10.31, ('OK', 'python'))
(a, b, (c, d)) = t
print(a, b, c, d)
# 1 10.31 OK python
t = 1, 2, 3, 4, 5
a, b, *rest, c = t
print(a, b, c) # 1 2 5
print(rest) # [3, 4]
a, b, *_ = t
print(a, b) # 1 2