元组(Tuple) 元组是有序且不可变序列(不可以进行增、删、改操作),可以以id的变化判断是否是可变序列。
可变序列有列表、字典。如果进行增、删、改操作,id是不会变化。
例: tup = ('hello', 'python',98)
tup —》元组名 ( )—》定界符
一、创建
1.直接用小括号
tup = ('hello', 'python', 98)
num = 'hello', 'python', 98 #可以省略小括号
print(tup, type(tup))
print(num, type(num))
('hello', 'python', 98) <class 'tuple'>
('hello', 'python', 98) <class 'tuple'>
二、内置函数tuple()
tup = tuple(('hello', 56, 52))
print(tup)
【注】1.使用tuple()函数需要再加一个小括号(多元素),因为tuple()函数只能有一个元素。
2.使用内置函数方便类型转换.
3.创建只有一个元素的元组
1.
t = (10,)
print(t, type(t))
(10,) <class 'tuple'>
2.
t = 'hello' ,
print(t, type(t))
(hello,) <class 'tuple'>
【注】必须在元素后面键逗号,否则会返回元素本身的数据类型。
三、遍历
1.索引
tup = (12, 56, 'hello' ,52)
print(tup[0])
print(tup[1])
12
56
【注】索引不要知道元素的个数,不可以存在越界 。
2.使用for()循环
tup = (12, 56, 'hello' ,52)
for item in tup:
print(item, end = ' ')
12 56 hello 52
四、为什么是不可变序列
1.多个对象同时访问一个元素不用加锁,只允许一个对象访问并且修改,其余对象只能访问不可以修改。
【注意】
1.如果元组中对象不可变,则不能在引用其他对象。
2.如果元组中是可变对象,则可变对象的引用不允许改变,但数据可以改变。
总结:元组本身是不可变的,每个元素也不可变时,时不能对元组进行操作的。如果元组中的对象时可变的对象,则可变对象的引用不可以改变,但数据可以改变(可以改变值,不可改变元素对象属性)。如下图: