Python中可变类型与不可变类型

可变类型

可变数据类型是指变量所指向的内存地址处的值是可以被改变的

  • 集合

    #集合
    myset = {1, '2', '34', '5', 67}
    print(myset, type(myset), id(myset))
    myset.add('999')
    print(myset, type(myset), id(myset))
    
  • 列表

    #列表
    list = [1024, '程序员节', 1111, "资深程序员节"]
    print(list, type(list), id(list))
    list.append('炫富就要炫机械键盘')
    print(list, type(list), id(list))
    
  • 字典

    #字典
    mydict = {"姓名": "尹天仇", "职业": "演员", "出处": "喜剧之王"}
    print(mydict, type(mydict), id(mydict))
    mydict["age"] = 32
    print(mydict, type(mydict), id(mydict))
    

不可变类型

不可变类型的变量一经生成其中的元素不能被修改,只能被访问

  • 数字类型: int、float 、complex

     num = 1024		# 整型
     flo = 12.24	# 浮点型
     com = 1 + 2j	# 复数类型
    
  • string

    str1 = str() 		# 使用构造函数创建
    str2 = str("abc")
    str3 = ""
    str4 = "abc"
    
  • 元组

    tuple1 = tuple((1, 2, 3, 4)) # 创建一个包含3个元素的元组对象
    tuple2 = (1, 2, 3, 4)
    tuple3 = (100,) # 创建一个元素的元组时,必须要带有逗号
    

两者的特点

在Python中,一切皆为对象,一切皆为对象的引用 – 非常重要!!!

  • 不可变类型: int, float, string, number, tuple

    特点:不可变对象的内容没有发生改变,变的是:创建新的对象后,改变了变量对对象的引用

    num = 1024          # 1024
    num = 1024 + 10     # 1034实际上是另一个对象
    
  • 可变类型:列表、字典、集合、自定义类型

    可变对象的内容是可以变的

    lst = [1, 2, 3]
    lst[2] = 4
    

元组和列表的区别

  • 列表属于可变序列,元素可以随时修改或者删除;元组属于不可变序 列,元素是不能修改的,除非整体重新赋值

  • 列表有多种方法实现添加和修改列表元素;元组中不允许添加或修改元素,同样也不能删除某个元素,除非使用del整体删除

  • 列表可以使用切片方法访问和修改列表中的元素;元组也支持切片,但只能通过切片访问元组中的元素,不支持修改

  • 元组比列表的访问和处理速度快,如果只需要对序列的元素进行访问,而不进行任何修改,建议使用元组

  • 列表不能作为字典类型中的键,而元组是可以的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值