python 基础知识第8讲:序列之元组

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

猜你喜欢

转载自blog.csdn.net/scyllake/article/details/95737981