元组特点:元组是有序的,不能修改。
元组的定义:
(1),通过()来定义:变量名=(1,2,3,4),是以逗号分割,以小括号包围的序列。
(2), 通过tuple 函数定义:
lst=[1,2,3,4]
a=tuple(lst)
print(a)
结果:
(1,2,3,4)
元组的优点:由于元组不可变,所以遍历元组比列表要快(较小的性能提升)
1,元组的创建
tup = (1, 2.2, True, 'ka')
print(tup)
print(type(tup))
输出结果:
(1, 2.2, True, 'ka')
2,访问元组
元组的索引和字符串以及列表完全一致
tup = (1, 2.2, True, 'ka')
ret = tup[1] #2.2 注意索引越界问题
# 通过切片来获取内容
tup=(1,2.2,True,'hello','赵四','刘能')
tup1=tup[0:4:1] #[1,2.2,True,'hello']
# 访问多维元组
tup = (('zs', 10), ('ls', 11), ('ww', 12))
ret = tup[1][0]
print(ret) # ls 先找到内层元组,在获得里面对应的值
# 使用多个变量来接受元组中的值
# 注意:变量的个数和元组中的值的个数必须一一对应
name, age, height, weight = ('zs', 23, 1.76, 167)
print(name) # zs
print(age) # 23
print(height) #1.76
print(weight) # 167
3,修改元组
元组是不可变的,但是如果元素本身是一个可变数据类型的列表,那么 其嵌套项可以被改变。
tup = ('zs', 'ls', 'ww', ['白骨精', '唐僧'])
tup[3].insert(1,'宋江')
print(tup) # ('zs', 'ls', 'ww', ['白骨精', '宋江', '唐僧'])
tup[3].append('宋江')
print(tup) # ('zs', 'ls', 'ww', ['白骨精', '宋江', '唐僧', '宋江'])
4,一个逗号的魅力
tup1 = (1)
tup2 = (1,)
print(type(tup1)) #
print(type(tup2)) #
可以看到没有逗号,变量就是整数型的,所以这就是一个逗号的魅力
5,tuple 函数
功能与 list 函数基本上是一样的
# tuple()函数和list()函数
lst = [1, 2, 3]
tup = tuple(lst)
print(tup) # (1, 2, 3)
tup = ('a', 'b', 'c')
ret = list(tup)
print(ret) # ['a', 'b', 'c']
6,元组的方法
因为元组是不可变的,所以方法只有两种 index 和 count ,用法也与列表一样
tup = ('a', 'b', 'c', 'a', 'b', 'c', 'g')
ret = tup.index('b')
ret1 = tup.index('a', 2, len(tup))
print(ret, ret1) # 1 3
ret2 = tup.count('a')
print(ret2) # 2
7,元组与字符串的区别
(1)、元组和字符串都是有序的,不可修改的序列
(2)、元组的元素可以是任何类型,字符串的元素只能是字符
(3)、元组的元素长度可以任意,字符串的元素长度只能为1