元组:元组也是一种数据类型,其中可以存储任意数据类型,但是元组不能修改
1.元组的创建:
创建一个空元组
>>> t = ()
>>> print(type(t))
<class 'tuple'>
>>> t = tuple()
>>> type(t)
<class 'tuple'>
创建并初始化一个元组
>>> t1 = ([1, 2, 3], 'hello', '1.34')
>>> print(t1, type(t1))
([1, 2, 3], 'hello', '1.34') <class 'tuple'>
如果元组中只有一个元素,则创建时必须加逗号,否则数据类型不确定
>>> t2 = (1)
>>> t3 = (1,)
>>> t4 = ('s')
>>> print(type(t2), type(t3), type(t4))
<class 'int'> <class 'tuple'> <class 'str'>
如果元组里面包含可变的数据类型 可以间接的去修改元组的内容
>>> t1 = ([1, 2, 3], 4, 5, 6)
>>> t1
([1, 2, 3], 4, 5, 6)
>>> t1[0].append(7)
>>> t1
([1, 2, 3, 7], 4, 5, 6)
>>> type(t1)
<class 'tuple'>
强制类型转换
>>> li = []
>>> t = tuple(li)
>>> print(type(li), type(t))
<class 'list'> <class 'tuple'>
>>> li_1 = list(t)
>>> type(li_1)
<class 'list'>
2.元组的特性
>>> t = (1, 2, 'hello', 2, 3)
索引:
>>> print(t[0])
1
>>> print(t[-1])
3
切片:注意所选择的区间为左闭右开区间
>>> print(t[1:])
(2, 'hello', 2, 3)
>>> print(t[:-1])
(1, 2, 'hello', 2)
>>> print(t[::-1])
(3, 2, 'hello', 2, 1)
>>> print(t[1:3])
(2, 'hello')
连接:注意不同类型的不能连接
>>> t1 = ('hello',)
>>> print(t + t1)
(1, 2, 'hello', 2, 3, 'hello')
>>> print(t + 'hello')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate tuple (not "str") to tuple
>>> print(t + [1, 2, 3])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate tuple (not "list") to tuple
重复:
>>> print(t * 2)
(1, 2, 'hello', 2, 3, 1, 2, 'hello', 2, 3)
成员操作符:
>>> print('hello' in t)
True
>>> print('python' in t)
False
for 循环:
>>> for i in t:
... print(i)
...
1
2
hello
2
3
3.元组的常用方法
index()返回元组中元素的索引,若元素存在,则返回索引,若不存在,则报错
>>> t = (1, 2, 'hello', 2, 3)
>>> t.index('hello')
2
count()查找所传递参数在元组中的数目,若存在,则返回数目,若不存在,则返回0
>>> t.count(2)
2
>>> t.count('hello')
1
4.元组的应用场景
交替赋值
>>> a = 1
>>> b = 2
>>> a,b = b,a # 实现:a,b=(1,2) b=(1,2)[0] a =(1,2)[1]
>>> print(a, b)
2 1
打印变量
>>> name = 'test'
>>> age = 18
>>> t = (name, age)
>>> print('name=%s, age=%d' %(name, age))
name=test, age=18
>>> print('name=%s, age=%d' %t)
name=test, age=18
>>> print('name=%s' %name)
name=test
>>> print('age=%d' %age)
age=18
>>> print('part=%s' %part)
part=linux