1 元组的基本定义与创建
1.1 元组的定义:
元组与列表类似,均可以存储任意的数据类型。但是元组中的元素,不可以任意做更改,没有增删改
1.2 元组的创建:
在( )中输入任意类型的元素,每个元素之间以,隔开
t = (1,2.3,True,'star')
print(t)
print(type(t))
结果:
(1, 2.3, True, 'star')
<class 'tuple'>
当元组内仅有一个元素时,必须以,隔开,否则元组的类型不确定
t1 = ('hello')
t2 = ('hello',)
t3 = ('1',)
print(type(t1))
print(type(t2))
print(type(t3))
结果:
<class 'str'>
<class 'tuple'>
<class 'tuple'>
1.3 元组内元素的更改:
元组内的元素不可以做更改,但是当元组内包含可变的数据类型时,可以通过改变可变的数据类型来间接对元组进行更改
t1 = ([1,2,3],4)
t1[0].append(4)
print(t1)
结果:
([1, 2, 3, 4], 4)
1.4 空元组的创建:
空元组创建:tup = ()
>>> tup = ()
>>> type(tup)
<class 'tuple'>
2 元组的特性
2.1 元组的索引与切片:
users = ('root','westos','redhat')
passwds = ('123','456','789')
#索引 切片
print(users[0])
print(users[-1])
print(users[1:])
print(users[:-1])
print(users[::-1])
输出结果:
root
redhat
('westos', 'redhat')
('root', 'westos')
('redhat', 'westos', 'root')
2.2 元组的重复:
# 重复
print(users * 3)
输出结果:
('root', 'westos', 'redhat', 'root', 'westos', 'redhat', 'root', 'westos', 'redhat')
2.3 元组的连接:
#连接
print(passwds + ('012','230'))
输出结果:
('123', '456', '789', '012', '230')
2.4 成员操作符:
#成员操作符
print('redhat' in users)
print('redhat' not in users)
#迭代
for user in users:
print(user)
for index,user in enumerate(users):
print('第%d个用户: %s' %(index+1,user))
for user,passwd in zip(users,passwds):
print(user,':',passwd)
输出结果:
True
False
root
westos
redhat
第1个用户: root
第2个用户: westos
第3个用户: redhat
root : 123
westos : 456
redhat : 789
3 元组的常用方法
count() ## 统计指定的元素在元组中出现的次数
index() ##表示指定元素的最小索引值
min() # 找出元组中的最小数
max() #找出元组中的最大数
sum() # 对元组中的元素求和
t = ('westos',1,2.1,'redhat','westos')
print(t.count('westos'))
print(t.index('westos'))
print(t.index(2.1))
输出结果:
2 ##元素'westos'在元组中出现2次
0 ##出现元素'westos'的最小索引为t[0]
2 ##出现元素2.1的最小索引为t[2]
t = (2,5,9.5,8.4)
print(min(t))
print(max(t))
print(sum(t))
输出结果:
2
9.5
24.9
4 元组的应用场景
1.变量交换数值
a = 1
b = 2
b,a = a,b
#1.先把(a,b)封装成一个元组(1,2)
#2.b,a=a,b ---> b,a=(1,2)
#b = (1,2)[0] a = (1,2)[1]
print(a)
print(b)
结果:
2
1
2.打印变量
name = 'luck'
age = 17
t = (name,age)
print('%s的年龄是%d' %(name,age))
print('%s的年龄是%d' %(t))
输出结果:
luck的年龄是17
luck的年龄是17
3.元组的赋值(有多少个元素,就用多少个变量接收)
t = ('westos',11,100)
name,age,score = t
print(name,age,score)
结果:
westos 11 100
scores = (100,89,45,78,65)
#转换成列表后应用sort()进行排序
scoresLi = list(scores)
scoresLi.sort()
print(scoresLi)
结果:
[45, 65, 78, 89, 100]
scores = (100,89,45,78,65)
#sorted函数可直接对元组排序
scores = sorted(scores)
print(scores)
结果:
[45, 65, 78, 89, 100]
scores = (100,89,78,65,59)
maxscore,*middlescore,minscore = scores
print(maxscore)
print(middlescore)
print(minscore)
结果:
100
[89, 78,65]
59