2020/5/8
元组:最重要就是不可以改变值
1,定义元组,输出元组类型
a=()
print(type(a))
a=(1,2,3,4,5,"auogfu",2.333)
print(a)
a=tuple((1, 2, 3, 4, 5, 'auogfu', 2.333))
print(a)
a=1, 2, 3, 4, 5, 'auogfu', 2.333
print(a)
输出:
<class ‘tuple’>
(1,2,3,4,5,‘auogfu’,2.333)
(1,2,3,4,5,‘auogfu’,2.333)
(1,2,3,4,5,‘auogfu’,2.333)
解释:
(1)元组类型就是tuple
(2)元组是可以省略()直接输入内部的代码的
2,定义单个数字时的情况
a=(2)
print(a)
print(type(a))
a=(2,)
print(a)
print(type(a))
a=2,
print(a)
print(type(a))
[/code]
输出:
2
<class ‘int’>
(2,)
<class ‘tuple’>
(2,)
<class ‘tuple’>
解释:
(1)单个数字存入时,是字符串类型
(2)可以通过在数字尾部加上,来将其类型转换为元组
(3)上述两条有没有括号通用
3,对于单个数据的类型辨析
d1=(2)
d2=(2,)
d3=2,
d4=tuple((2,))
print(type(d1),type(d2),type(d3),type(d4))
输出:
<class ‘int’> <class ‘tuple’> <class ‘tuple’> <class ‘tuple’>
4,不同输入方式在python内部的状态
b=(2,3,4,5,)
print(b)
c=2,3,4,5
print(c)
print(b is c)
print(b==c)
输出:
(2,3,4,5)
(2,3,4,5)
True
True
解释:
(1)虽然表示方式不同但是在python内部存储的时候还是相同的
(2)python内部的存储规律变幻莫测,初学者不要凭感觉确定
5,函数返回值与元组的的关系
def fun(n):
a=n+1
b=n+2
return a,b
a1,a2=fun(3)
print(a1,a2)
输出:
4 5
解释:
(1)返回值的本质就是元组
(2)在这个例子中返回值相当于是一个含有两个元素的元组
6,对于元组相关的运算符
a=(2,)
print(a*4)
b=(1,2,3)
print(b*2)
print(a+b)
b=(1,2,3)
b=b[0]+4,+b[2]
print(b)
输出:
(2,2,2,2)
(1,2,3,1,2,3)
(2,1,2,3)
(5,3)
解释:
(1)乘相当于接上相同的元组多个
(2)加起到的是连接的作用
(3)通过加可以实现对元组的“修改”,本质上没有改变。
7,元组的切片
a=(2,14,12,12,"fadjh")
print(a[::-1],a[-1],a[:3],sep="\n")
b=a,+2
print(b)
c=a*4
print(c)
输出:
(‘fadjh’,12,12,14,2)
fadjh
(2,14,12)
((2,14,12,12,‘fadjh’),2)
(2,14,12,12,‘fadjh’,2,14,12,12,‘fadjh’,2,14,12,12,‘fadjh’,2,14,12,12,‘fadjh’)
解释:
(1)a[x1,x2,x3]
x1:对应起始位置
x2:对应终止位置(需要减1)
x3:相当于步进
(2)在加时需要根据需求增加逗号
8,列表嵌套在元组中
c=2,3,4,[5,6]
print(c)
print(len(c))
print(len(c[3]))
输出:
(2,3,4,[5,6])
4
2
解释:
(1)元组是不可以改变的,但是元组内的列表元素是可以改变的
(2)元组内的列表是可以进行正常列表的操作的
9,元组嵌套在列表中
d=[2,3,4,(5,6,7)]
print(d)
print(type(d[3]))
print(c)
c[3].append(7)
print(c)
输出:
[2,3,4,(5,6,7)]
<class ‘tuple’>
解释:
(1)对于嵌套形成的c来说,是不可以改的,但是其中的列表内容是可以改的
(2)列表中元素是可以改变的,但是涉及到元组的就不可以改变了
10,对元组进行排序的方法(借助于列表)
a=3,2,4,23,43,23,32,432,342,324,432,32,4,2,2,2,
c=list(a)
c.sort()
print(c)
sorted(c)
print(c)
d=set(c)
print(d)
c.reverse()
print(c)
输出:
[2, 2, 2, 2, 3, 4, 4, 23, 23, 32, 32, 43, 324, 342, 432, 432]
[2, 2, 2, 2, 3, 4, 4, 23, 23, 32, 32, 43, 324, 342, 432, 432]
{32, 2, 3, 4, 324, 43, 432, 342, 23}
[432, 432, 342, 324, 43, 32, 32, 23, 23, 4, 4, 3, 2, 2, 2, 2]
解释:
(1).sort()和sorted()都可以起到排序的作用
(2)set()起到除去重复项的作用
(3).reserve()是倒叙