zoukankan      html  css  js  c++  java
  • 🍖数据类型之可变与不可变类型

    一.可变类型

    1.什么是可变类型

    • 在值改变的情况下, 内存地址(ID)不变, 证明改变的是原值
    • 即可变类型--->也叫不可 hash 类型

    2.可变类型有哪些

    • 列表 : list
    • 字典 : dict

    3.示例

    • 列表 list
    修改前
    li = ['aaa', 'bbb', 'ccc']
    print(li)      # ['aaa', 'bbb', 'ccc']
    print(id(li))  # 1534124489600
    
    修改后
    li[0] = 'AAA'
    print(li)      # ['AAA', 'bbb', 'ccc']
    print(id(li))  # 1534124489600
    
    • 字典 dict

    ps : 字典的数据结构是 key:value形式的键值对, 我们说字典可变通常是说值(valve)可变, 而 key 表示的是描述信息, 是不可变的, 并且只可以是任意类型

    修改前
    dic = {'int':100 , 'str': 'aaa', 'bool': True , 'float':3.14 }
    print(dic)      # {'int':100 , 'str': 'aaa', 'bool': True , 'float':3.14 }
    print(id(dic))  # 1460220808552
    
    修改后
    dic["int"] = 66
    print(dic)      # {'int':66 , 'str': 'aaa', 'bool': True , 'float':3.14 }
    print(id(dic))  # 1460220808552
    

    二.不可变类型

    1.什么是不可变类型

    • 在值改变的情况下, 内存地址也改变了, 证明这改变的值是产生的新值
    • 即原值不可变--->也叫可 hash 类型
    • 他们都是一个不可分割的整体

    2.不可变类型有哪些

    • 整形 : int
    • 浮点型 : float
    • 字符串 : str

    3.示例

    • 整形 int
    修改前
    x = 10
    print(id(x))  # 140715012507584
    
    修改后,下面使用了变量赋值、以及增量赋值2种修改方式
    x = 20
    print(id(x))  # 140715012507904
    x += 20
    print(id(x))  # 140715012508544
    
    • 浮点型 float
     修改前
    x = 10.3
    print(id(x))  # 1818265421872
    x = 20.3
    
    修改后,下面使用了变量赋值、以及增量赋值2种修改方式
    print(id(x))  # 1818264232976
    x += 20.3
    print(id(x))  # 1818265422256
    
    • 字符串 str
    修改前
    x = 'aaa'
    print(id(x))  # 1614906980528
    
    修改后
    x = 'AAA'
    print(id(x))  # 1614906972400
    
    • 布尔值 bool
    修改前
    x = True
    print(id(x))  # 140715012228944
    
    修改后
    x = False
    print(id(x))  # 140715012228976
    
  • 相关阅读:
    COGS727 [网络流24题] 太空飞行计划
    Bzoj1692 洛谷P2870 [Usaco2007 Dec]队列变换
    Bzoj1029 [JSOI2007]建筑抢修
    Bzoj3168 [Heoi2013]钙铁锌硒维生素
    Bzoj4566 [Haoi2016]找相同字符
    Bzoj4771 七彩树
    Bzoj2597 [Wc2007]剪刀石头布
    Bzoj4773 负环
    HDU5772 String problem
    Bzoj1324 Exca王者之剑
  • 原文地址:https://www.cnblogs.com/songhaixing/p/14015664.html
Copyright © 2011-2022 走看看