02 基本数据类之元组类型及其内置方法

02 基本数据类之元组类型及其内置方法

一、作用

  • 元组就是不可变的列表。按照索引位置存放多个值,只用来读,不用来改。
  • 在同等数据类型下,使用元组更加节简空间,效率要高于列表,因为元组底层只提供读的机制,而列表即要有读的机制,还要有该的机制。虽然这种效率的影响不太,但是本着效率更高的态度,我们这个时候就应该用元组类型。

二、定义

  • 定义:()内用逗号分隔开多个任意类型的元素。
  • 定义需注意: 单独一个括号,只代表包含的意思。如果你定义的元组中,只有一个元素,必须用逗号分隔开。
  • 元组的不可变到底是什么不可变?元组不可变,指的是第一层内元素的内存地址,不能被改变。如果第一层内嵌套了可变的容器类型,例如:列表。那么这个列表本身容器地址不可改变,而该列表中的值可以被改变。
# 1、定义
t = (1, 1.3, 'aa')  # t=tuple((1,1.3,'aa'))
print(t, type(t))

# 2、定义注意:单独一个括号代表包含的意思
x = (10)
print(x, type(x))

# 3、单个值的定义:如果元组中只有一个元素,必须加逗号
t = (10,)
print(t, type(t))

# 4、元组的不可变到底是什么不可变
# 4.1 元组不可变,指的是第一层内元素的内存地址,不能被改变
t = (1, 1.3, 'aa')  # t=(0->值1的内存地址,1->值1.3的内存地址,2->值'aa'的内存地址,)
# t[0] = 11111

# 4.2 如果第一层内嵌套了可变的容器类型,例如:列表。那么这个列表本身容器地址不可改变,而该列表中的值可以被改变。
t = (1, [11, 22])  # t=(0->值1的内存地址,1->值[11,22]的内存地址,)
print(id(t[0]), id(t[1]), id(t[1][0]))  # 140703318001312 3142440721856 140703318001632
# t[0]=111111111 # 不能改
# t[1]=222222222 # 不能改

t[1][0] = 11111111111111111  # 可以改
print(t)  # (1, [11111111111111111, 22]),元组中的列表的第一个值发生了改变
print(id(t[0]), id(t[1]), id(t[1][0]))  # 140703318001312 3142440721856 3142440159792(该id发生了改变)

三、类型转换

  • 强调:字符串、列表、字典都可以转元组。
# 字符串转元组
print(tuple('hello'))  # ('h', 'e', 'l', 'l', 'o')

# 列表转元组
print(tuple([1, 2, 3]))  # (1, 2, 3)

# 字典转元组 
print(tuple({'a1': 111, 'a2': 333}))  # ('a1', 'a2')

三、使用:内置方法

上一篇:椭圆曲线加密中的加法乘法浅析


下一篇:python:array和list转换以及数组切片