1.元组
元组(tuple)是一个不可变的序列,基本的一些操作方式和列表类似,但是有此列表中的方法在此是不可用的,如对元组的增加修改等
1.1.元组和列表使用的时机
当在实际使用中希望数据不改变时,使用元组,其余情况下使用列表
1.2.元组的创建
- 使用()创建的
my_tuple = () # 创建一个空的元组
print(my_tuple,type(my_tuple))
- 添加元素
my_tuple = (1,2,3,4,5)
print(my_tuple,type(my_tuple))
- 取出元组中的元素
print(my_tuple[3]) #通过索引取出相应的元素
- 改变元素值
my_tuple[0]=10 #此时运行会报错,因为元组是不可变的,所以无法修改其值
- 如果一个元组不是空的元组,那么它里面至少需要一个 ,
my_tuple = 10,
- 创建元组时,个别时候是不需要加括号 ()
my_tuple = 10,20,30,40
- 元组的解包
元组的解包指的是将元组当中的每一个元素都赋值给一个变量
a,b,c,d = my_tuple
print(a,b,c,d)
注:特别注意
在对一个元组解包时,变量的数量必须和元组中的元素要一一对应
如果出现变量和元素没有对等的情况下,我们可以在变量前面加一个*
这样变量就会将获取元组中所有剩余的元素以列表的形式返回
但是不能出现2个变量 2个*
my_tuple = 10,20,30,40
a,*b,c = my_tuple # 10 [20, 30] 40
*a,b,c = my_tuple # [10, 20] 30 40
print(a)
- 解包的方法对字符串,列表,元组都是适用的
a,b,*c = [1,2,3,4,5,6,7]
a,b,*c = 'python java'
- *a = my_tuple 这种写法会报错,语法不支持
2.可变对象
在内存当中每个对像都 保存了三个数据
- 1 id(标识)
- 2 type(类型)
- 3 value(值)
列表就是一个可变对象 比如 a=[1,2,3]
一般只有为变量赋值时才是修改变量,其余都是在修改对象
- 改对象 对象的内存地址是不会发生变化的
a[0] = 10 这个操作就是通过修改变量去修改对象的值,这个不会改变变量所指向的对象
a = [1,2,3]
print('修改前:',a,id(a))
# 通过索引来改变列表
a[0] = 10
print('修改后:',a,id(a))
- 改变量 改完之后对象的内存地址会发生变化
a=[4,5,6] 这个是操作是在给变量重新复值,这个操作会改变变量指向的对象
# 为变量赋值
a = [4,5,6]
print('修改后:',a,id(a))
可变对象01
可变对象02
3.对象间一些比较方法
-
1 == , !=
比较的是对象的值是否相等 -
2 is, is not
比较的是对象的id是否相等(比较两个对象是否是同一个对象)
a = [1,2,3]
b = [1,2,3]
print(a,b)
print(id(a),id(b))
print(a is b) #False
print(a == b ) #True
网友评论