• python疑难问题---3、可变和不可变数据类型


    python疑难问题---3、可变和不可变数据类型

    一、总结

    一句话总结:

    python中不可变数据类型:比如 数值型、字符串型string和元组tuple
    python中可变数据类型:比如 列表list和字典dict

    1、python中不可变数据类型(比如数值型)的特点?

    1、改变值,变量的地址会改变
    2、值相同的两个变量,地址是一样的
    a = 3
    print(id(a)) #2077451392
    a = 5
    print(id(a)) #2077451424
    b = 5
    print(id(b)) #2077451424

    2、python中可变数据类型(比如列表list)的特点?

    a、改变值,变量的地址不会改变
    b、值相同的两个变量,地址是不一样的
    list1=[1,2,3,4,5]
    print(id(list1)) #57361872
    list1.append(6)
    print(list1)
    print(id(list1)) #57361872
    print("---------------------------")
    list2=[1,2,3,4,5]
    print(id(list2)) #59656792
    list2.append(6)
    print(list2)
    print(id(list2)) #59656792

    二、可变和不可变数据类型

    博客对应课程的视频位置:3、可变和不可变数据类型
    https://www.fanrenyi.com/video/32/295

    1、不可变数据类型

    """
    不可变数据类型:数值型、字符串型string和元组tuple
    
    1、改变值,变量的地址会改变
    不允许变量的值发生变化,如果改变了变量的值,
    相当于是新建了一个对象,
    
    2、值相同的两个变量,地址是一样的
    而对于相同的值的对象,在内存中则只有一个对象(一个地址)
    
    """
    a = 3
    print(id(a)) #2077451392
    a = 5
    print(id(a)) #2077451424
    b = 5
    print(id(b)) #2077451424

    2、可变数据类型

    """
    可变数据类型:列表list和字典dict;
    
    1、改变值,变量的地址不会改变
    允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,
    只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,
    
    2、值相同的两个变量,地址是不一样的
    不过对于相同的值的不同对象,在内存中则会存在不同的对象,
    即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,
    这里不存在引用计数,是实实在在的对象。
    
    """
    list1=[1,2,3,4,5]
    print(id(list1)) #57361872
    list1.append(6)
    print(list1)
    print(id(list1)) #57361872
    print("---------------------------")
    list2=[1,2,3,4,5]
    print(id(list2)) #59656792
    list2.append(6)
    print(list2)
    print(id(list2)) #59656792
    系列博客对应课程视频地址:
    1、遍历列表的三种方式-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/32/293
    2、字典排序-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/32/294
    3、可变和不可变数据类型-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/32/295
    4、python文件处理-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/32/305
    5、二维列表初始化-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/32/306
    6、python中浅拷贝和深度拷贝-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/32/307
    7、python中的with...as...-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/32/320
    8、只有一个数的元组表示-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/32/343
    9、Python类中call函数的作用-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/32/361
    10、python遍历字典的几种方式-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/32/368
    11、python内嵌for...in循环-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/32/369
    12、python生成器-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/32/370
    13、Python切片操作-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/32/377
     
     
    我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
    博主25岁,前端后端算法大数据人工智能都有兴趣。
    大家有啥都可以加博主联系方式(qq404006308,微信fan404006308)互相交流。工作、生活、心境,可以互相启迪。
    聊技术,交朋友,修心境,qq404006308,微信fan404006308
    26岁,真心找女朋友,非诚勿扰,微信fan404006308,qq404006308
    人工智能群:939687837

    作者相关推荐

  • 相关阅读:
    Android 隐式意图激活另外一个Actitity
    Android 显示意图激活另外一个Actitity
    Android 创建一个新的Activity
    调用meitu秀秀.so文件实现美图功能
    Android C代码回调java方法
    Android 在C代码中调用logcat
    Android java传递int类型数组给C
    Android java传递string类型数据给C
    使用pywin32处理excel文件
    利用 pywin32 操作 excel
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13140294.html
Copyright © 2020-2023  润新知