python3 元组 (tuple)
元组是不可改变的序列, 同list 一样, 元组可以存放任意的值;
表示方法:
用小括号()括起来; 单个元素括起来后加逗号(,)区分单个对象还是元组;
创建空元组:
t = () #空元组
t= tuple() #空元组
创建一个非空元组:
t = (10,) # 含有一个元素的元组;
t= 10,
t=(1,2,3)
t= 10 ,20, 30
t = ‘hello’ ,
t = (‘1’,‘2’, ‘tree’)
创建元组错误示例:
t = (20)
#序列赋值
x, y = 100, 200 # x绑定100, y绑定200
x, y = (100, 200) # x绑定100, y绑定200
x, y = [100, 200] # x绑定100, y绑定200
x, y = "AB" #序列赋值
元组的构造(生成)函数tuple
tuple() #生成一个空元组, 等同于()
tuple(iterable) #用可迭代对象生成一个元组
元组的运算:
算术运算: + 、 += 、 * 、 *=
+ 拼接
+= 拼接后对变量赋值
* 生成重复的元组
*= 生成重复的元组并赋值给变量
>>> (1,3) + (4,5)
(1, 3, 4, 5)
>>> x = (1,2,3)
>>> x += (4,)
>>> x
(1, 2, 3, 4)
>>>
>>> x
(1, 2, 3, 4)
>>> x * 3
(1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4)
>>> x
(1, 2, 3, 4)
>>> x *= 3
>>> x
(1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4)
>>>
比较运算符: < <= > >= == !=
>>> x =(1,2,3)
>>> y = (1,3,2)
>>> x < y
True
>>> x > y
False
>>> x == y
False
>>> x != y
True
>>>
元组的 in / not in 运算符
同字符串和列表的in 运算符相同,用于判断一个值是否存在于元组中,存在返回True,不存在返回False。
>>> x
(1, 2, 3)
>>> 1 in x
True
>>> 5 in x
False
>>> 5 not in x
True
元组的索引 indes
等同于字符串的索引规则; 但是元组不能切片赋值;
>>> x
(1, 2, 3)
>>> x[0]
1
>>> x[0] = 5
Traceback (most recent call last):
File "<pyshell#51>", line 1, in <module>
x[0] = 5
TypeError: 'tuple' object does not support item assignment
>>> x[::2] = 5,6
Traceback (most recent call last):
File "<pyshell#52>", line 1, in <module>
x[::2] = 5,6
TypeError: 'tuple' object does not support item assignment
>>>
可用于序列的函数总结:
len(x)
max(x)
min(x)
sum(x)
any(x)
all(x)
reversed(seq) # 返回反向序列顺序的迭代器
sorted(iterable) #返回已排序的列表
>>> s = 'ABCDEF'
>>> reversed(s)
<reversed object at 0x00000000034CA710>
>>> r = reversed(s)
>>> r
<reversed object at 0x0000000003711BA8>
>>> list(r)
['F', 'E', 'D', 'C', 'B', 'A']
>>> list(r)
[] #在迭代器里再去拿数据时已经没有了,拿不了了。
s='ABC'
for x in reversed(s):
print(x)
>>> s = 'ABCDEF'
>>> r = reversed(s)
>>> for x in r:
print(x) F
E
D
C
B
A
>>>
>>> s = 'AGBDCEF'
>>> sorted(s) #正向
['A', 'B', 'C', 'D', 'E', 'F', 'G']
>>> sorted(s, reverse=True) #反向
['G', 'F', 'E', 'D', 'C', 'B', 'A']
>>> ''.join(sorted(s)) #可迭代对象合并成列表
'ABCDEFG'
>>>
>>> help(''.join)
Help on built-in function join: join(...) method of builtins.str instance
S.join(iterable) -> str Return a string which is the concatenation of the strings in the
iterable. The separator between elements is S. >>>
元组的方法:
T.index( v [, begin [,end]]) 返回对应元素索引的下标,begin为开始索引,end为结束索引(不包含end);
T.count(x) 返回元组中对应元素的个数;
练习: