精华内容
下载资源
问答
  • Python数据类型有哪些哪些是可变类型哪些不可变类型类型: 整数int 字符串str 浮点数float 布尔型bool 列表list 字典dict 集合set 元组tuple 可变类型:就是这个数据类型在不改变这一块内存空间,而去...

    Python数据类型有哪些,哪些是可变类型,哪些是不可变类型?

    类型:

    整数int 字符串str 浮点数float 布尔型bool 列表list 字典dict 集合set 元组tuple

    可变类型:就是这个数据类型的值在不改变这一块内存空间,而去改变这个数据类型的值。

    1.列表
    2.字典
    3.集合

    不可变类型:当改变值得时候,会申请一块新的内存空间,不再是原来的那一块内存空间了。

    1. 整数
    2. 字符串
    3. 浮点数
    4. 布尔型
    5. 元组
    展开全文
  • Java基本类型不可变

    千次阅读 2018-10-09 18:53:00
    Java基本类型共有八种,基本类型可以分为三类: 字符类型char 布尔类型boolean 数值类型byte、short、int、long、float、double 数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double ...

    Java基本类型共有八种,基本类型可以分为三类:
    字符类型char
    布尔类型boolean
    数值类型byte、short、int、long、float、double

    数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double

    方法参数有两种类型:基本数据类型和对象引用。一个方法不可能修改一个基本数据类型的参数,而对象引用作为参数就不同了。

    final修饰符大都应用于基本类型域,或不可变类的域(如果类中的每个方法都不会改变其对象,这种类就是不可变的类,String类就是一个不可变的类)

    展开全文
  • python可数据类型不可变数据类型

    千次阅读 多人点赞 2019-01-06 23:44:46
    Python3可数据类型不可变数据类型 很多人在刚开始接触 python 这个语言的时候,总是搞不清楚什么是 可数据类型 ...2.可数据类型不可变数据类型有哪些? 3.专业名词解释 4.代码举例说明 5.表...

                              Python3可变数据类型与不可变数据类型

    有很多人在刚开始接触 python 这个语言的时候,总是搞不清楚什么是 可变数据类型 什么是 不可变数据类型,今天就让我们通过这篇小文章来详细了解一下。


    知识点目录:

    1.python 的数据类型

    2.可变数据类型 和 不可变数据类型 都有哪些?

    3.专业名词解释

    4.代码举例说明

    5.表格图


    ----------------------------------------------------------这是一条帅气的分割线-----------------------------------------------------------------

    1. python 的数据类型?

    数值类型、字符串、元组、列表、字典、集合(不常用)


    2.可变数据类型 和 不可变数据类型 都有哪些?

    可变数据类型:list(列表)、dict(字典)、set(集合,不常用)

    不可变数据类型:数值类型(int、float、bool)、string(字符串)、tuple(元组)


    3.专业名词解释

    可变数据类型:当该数据类型对应的变量的值发生了变化时,如果它对应的内存地址不发生改变,那么这个数据类型就是 可变数据类型

    不可变数据类型:当该数据类型对应的变量的值发生了变化时,如果它对应的内存地址发生了改变,那么这个数据类型就是 不可变数据类型

    总结:可变数据类型更改值后,内存地址不发生改变。不可变数据类型更改值后,内存地址发生改变。


    4.代码举例说明

    4.1 数值数据类型

    # 数值数据类型
    number = 1
    print(id(number),type(number))
    
    number = 2    # 重新赋值
    print(id(number),type(number))
    
    # 结果
    1738921008 <class 'int'>
    1738921024 <class 'int'>

    总结:数值数据类型,同一个变量,一旦重新赋值,内存地址就会发生改变。


    4.2 字符串数据类型

    # 字符串数据类型
    name = 'Super Man 超人'
    print(id(name),type(name))
    
    name = 'Iron Man 钢铁侠'
    print(id(name),type(name))
    
    # 结果
    56870552 <class 'str'>
    64772320 <class 'str'>

    总结:字符串数据类型,同一个变量,一旦重新赋值,内存地址就会发生改变。


    4.3 元组数据类型

    # 元组数据类型
    tuple_data1 = (1,'Hello')
    print(id(tuple_data1),type(tuple_data1))
    
    tuple_data2 = ([2,3],(5,6))    # 创建新的元组
    
    tuple_data1 = tuple_data1 + tuple_data2    # 两个元组进行连接
    print(id(tuple_data1),type(tuple_data1))    # 打印连接之后的内存地址
    
    print(tuple_data1)    # 打印连接后的数据
    
    
    # 结果
    91584352 <class 'tuple'>
    91143888 <class 'tuple'>
    (1, 'Hello', [2, 3], (5, 6))
    

    总结:判断元组数据类型相对麻烦一些,因为元组数据类型类似于列表数据类型,元组内可以存储 数值类型、字符串、列表、元组,但是元组一经创建,内部的元素的值就不能修改,否则报错。但是我们可以对元组进行连接组合。在例子中可以看到,同一个变量,将两个元组的值进行连接赋值给变量,然后打印变量内存地址发生改变。所以做出判断,元组是不可变数据类型


    4.4 列表数据类型

    # 列表数据类型
    list_data = [1,'q','qwer',True]
    print(id(list_data),type(list_data))
    
    list_data.append('djx')    # 调用 append 添加方法,添加数据
    print(id(list_data),type(list_data))
    
    # 结果
    88407856 <class 'list'>
    88407856 <class 'list'>

    总结:列表数据类型,同一个变量,添加新值之后,内存地址不会发生改变。


    4.5 字典数据类型

    # 字典数据类型
    dict_data = {2: 1, 'key2': 'djx', 'key3': 'li'}
    print(id(dict_data), type(dict_data))
    
    dict_data['key4'] = 'haha'    # 往字典中添加一个键值对
    print(id(dict_data), type(dict_data))
    
    # 结果
    86364208 <class 'dict'>
    86364208 <class 'dict'>

     总结:字典数据类型,同一个变量,添加新值之后,内存地址不会发生改变。


    4.6 集合数据类型

    # 集合数据类型
    set_data = {1, 'd', '34', '1', 1}
    print(id(set_data), type(set_data))
    
    set_data.add('djx')    # 添加元素
    print(id(set_data), type(set_data))
    
    # 结果
    84993488 <class 'set'>
    84993488 <class 'set'>

    总结:集合数据类型,同一个变量,添加新值之后,内存地址不会发生改变。


    5.表格图

    数据类型可变/不可变
    整型不可变
    字符串不可变
    元组不可变
    列表可变
    字典可变
    集合可变

    非常感谢同仁的观看.如果小编写的有问题,欢迎评论.发现问题后会第一时间修改.

    祝大家工作顺利.    ♥(ˆ◡ˆԅ)   

     

     

     

     

    展开全文
  • Python的可不可变数据类型

    万次阅读 多人点赞 2015-11-16 13:13:19
    python的可不可变数据类型

    python的可变与不可变数据类型


        初学python的时候,可能会有很多疑惑,尤其是最先接触的所谓的“可变数据类型”和“不可变数据类型”。python与C/C++不一样,它的变量使用有自己的特点,当初学python的时候,一定要记住“一切皆为对象,一切皆为对象的引用”这句话,其实这个特点类似于JAVA,所以在python里面大家也不用担心类似于C/C++中的指针的复杂问题。下面本文将对python里面的“可变数据类型”和“不可变数据类型”进行分析。

        首先,我们需要知道在python中哪些是可变数据类型,哪些是不可变数据类型。可变数据类型:列表list和字典dict;不可变数据类型:整型int、浮点型float、字符串型string和元组tuple。

        然后,我们以int和list为例,来看看“可变数据类型”和“不可变数据类型”到底有什么区别。

    (1)不可变数据类型分析。先来看一段程序:

    >>> x = 1
    >>> id(x)
    31106520
    >>> y = 1
    >>> id(y)
    31106520
    >>> x = 2
    >>> id(x)
    31106508
    >>> y = 2
    >>> id(y)
    31106508
    >>> z = y
    >>> id(z)
    31106508
    >>> x += 2
    >>> id(x)
    31106484 

        上面这段程序都是对不可变数据类型中的int类型的操作,id()查看的是当前变量的地址值。我们先来看x = 1和y = 1两个操作的结果,从上面的输出可以看到x和y在此时的地址值是一样的,也就是说x和y其实是引用了同一个对象,即1,也就是说内存中对于1只占用了一个地址,而不管有多少个引用指向了它,都只有一个地址值,只是有一个引用计数会记录指向这个地址的引用到底有几个而已。当我们进行x = 2赋值时,发现x的地址值变了,虽然还是x这个引用,但是其地址值却变化了,后面的y = 2以及z = y,使得x、y和z都引用了同一个对象,即2,所以地址值都是一样的。当x和y都被赋值2后,1这个对象已经没有引用指向它了,所以1这个对象占用的内存,即31106520地址要被“垃圾回收”,即1这个对象在内存中已经不存在了。最后,x进行了加2的操作,所以创建了新的对象4,x引用了这个新的对象,而不再引用2这个对象。

        那么为什么称之为不可变数据类型呢?这里的不可变大家可以理解为x引用的地址处的值是不能被改变的,也就是31106520地址处的值在没被垃圾回收之前一直都是1,不能改变,如果要把x赋值为2,那么只能将x引用的地址从31106520变为31106508,相当于x = 2这个赋值又创建了一个对象,即2这个对象,然后x、y、z都引用了这个对象,所以int这个数据类型是不可变的,如果想对int类型的变量再次赋值,在内存中相当于又创建了一个新的对象,而不再是之前的对象。从下图中就可以看到上面程序的过程。



    图1 python不可变数据类型分析

        从上面的过程可以看出,不可变数据类型的优点就是内存中不管有多少个引用,相同的对象只占用了一块内存,但是它的缺点就是当需要对变量进行运算从而改变变量引用的对象的值时,由于是不可变的数据类型,所以必须创建新的对象,这样就会使得一次次的改变创建了一个个新的对象,不过不再使用的内存会被垃圾回收器回收。

    (2)可变数据类型分析。下面同样先看一段程序。

    >>> a = [1, 2, 3]
    >>> id(a)
    41568816
    >>> a = [1, 2, 3]
    >>> id(a)
    41575088
    >>> a.append(4)
    >>> id(a)
    41575088
    >>> a += [2]
    >>> id(a)
    41575088
    >>> a
    [1, 2, 3, 4, 2]

        从上面的程序中可以看出,进行两次a = [1, 2, 3]操作,两次a引用的地址值是不同的,也就是说其实创建了两个不同的对象,这一点明显不同于不可变数据类型,所以对于可变数据类型来说,具有同样值的对象是不同的对象,即在内存中保存了多个同样值的对象,地址值不同。接着来看后面的操作,我们对列表进行添加操作,分别a.append(4)和a += [2],发现这两个操作使得a引用的对象值变成了上面的最终结果,但是a引用的地址依旧是41575088,也就是说对a进行的操作不会改变a引用的地址值,只是在地址后面又扩充了新的地址,改变了地址里面存放的值,所以可变数据类型的意思就是说对一个变量进行操作时,其值是可变的,值的变化并不会引起新建对象,即地址是不会变的,只是地址中的内容变化了或者地址得到了扩充。下图对这一过程进行了图示,可以很清晰地看到这一过程。


    图2 python可变数据类型分析

        从上述过程可以看到,可变数据类型是允许同一对象的内容,即值可以变化,但是地址是不会变化的。但是需要注意一点,对可变数据类型的操作不能是直接进行新的赋值操作,比如说a = [1, 2, 3, 4, 5, 6, 7],这样的操作就不是改变值了,而是新建了一个新的对象,这里的可变只是对于类似于append、+=等这种操作。

        总之,用一句话来概括上述过程就是:“python中的不可变数据类型,不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象,内部会有一个引用计数来记录有多少个变量引用这个对象;可变数据类型,允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。”

        最后,大家主要区分开什么是变量值的变化、什么是变量引用的对象地址的变化这些概念就很清楚了,千说万说都不如自己动手写一些程序测试一下看看来得实在,所以建议大家有什么疑惑可以自己写一些基本的程序测试一下便知道结果。如果大家有新的意见,欢迎补充,谢谢。
    展开全文
  • Java数据类型的可不可变

    千次阅读 2019-06-29 17:02:06
    不可变数据类型: 当该数据类型的对应变量的发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。其中基本数据类型都是不可变数据类型,例如int,如果一个int类型的数据发生...
  • python不可变类型和可变类型

    万次阅读 多人点赞 2018-02-28 14:45:50
    python变量可以分为两种类型不可变类型(数字、字符串、元组、不可变集合)可变类型(列表、字典、可集合)python所声明的变量都以对象的形式存在,存在于机器的固定内存之中。可以理解为变量名为对象的指针如声明...
  • 变类型有list,dict.不可变类型有string,number,tuple. ...不可变类型被改变时,并没有改变原内存地址中的,而是开辟一块新的内存,将原地址中的复制过去,对这块新开辟的内存中的进行操作。 ...
  • Python的基本数据类型大致可分为6类:1.Number(数字) 2. String(字符串) 3. Tuple (元组) 4. List(列表) 5. Dictionary (字典) 6....这6种类型又可以分为可变类型不可变类型,其中不可变类型有:Number(数字) S...
  • python中可数据类型不可变数据类型小结

    万次阅读 多人点赞 2018-12-13 11:52:59
    一、python中数据类型(红色为可变类型) 1、字符串 str 2、布尔类型 bool 3、整数 int  4、浮点数 float ...可变类型:在id(内存地址)不变的情况下,value()可以,则称为可变类型 1、列表属于...
  • python中不可变数据类型和可数据类型

    万次阅读 多人点赞 2019-05-29 17:43:15
    不可变数据类型: 当该数据类型的对应变量的发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。 可数据类型 :当该数据类型的对应变量的发生了改变,那么它对应的内存...
  • 开始学python时不理解可数据类型不可变数据类型到底该怎么区分?当时也没时间多想,后来一次和一个朋友又说到这个问题,所以决定去弄个究竟。谨以此文献给更多的后来者参考。 可数据类型:当该数据类型对应...
  • 初学python的时候,可能会很多疑惑,尤其是最先接触的所谓的“可数据类型”和“不可变数据类型”。python与C/C++不一样,它的变量使用自己的特点,当初学python的时候,一定要记住“一切皆为对象,一切皆为...
  • Java中的String为什么是不可变的? -- String源码分析

    万次阅读 多人点赞 2014-01-15 22:07:12
    不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。 区分对象和对象的引用 对于Java初学
  • Python学习系列之值类型与引用类型

    千次阅读 多人点赞 2019-01-15 00:15:24
    其实各个标准资料中没有说明Python有值类型和引用类型的分类,这个分类一般是C++和Java中的。但是语言是相通的,所以Python肯定也类似的。实际上Python 的变量是没有类型的,这与以往看到的大部分语言都一样(JS...
  • python 可数据和不可变数据解析

    千次阅读 2013-08-14 10:00:20
    python 的数据类型和C不一样,一种类型:可变类型 (mutable)和不可变类型(immutable) Python中所有变量都是的引用,也就说变量通过绑定的方式指向其。 而这里说的不可变指的是不可变。 对于不可变类型...
  • 不可变数据类型有: 整数 、 str 、 tuple(要对元组做限制,只能存放数字和字符串的不可变元素) 我们可以通过 id() 这个函数来查看对象的内存地址,如果两个对象的内存地址相同则代表是可变类型,如果不相同则代表...
  • C#中引用类型值类型分别有哪些

    万次阅读 2013-03-06 21:22:26
    C#的值类型包括:结构体(数值类型,bool型,用户定义的结构体),枚举,类型。 C#的引用类型包括:数组,用户定义的类、接口、委托,object,字符串。 数组的元素,不管是引用类型还是值类型,都存储在...
  • Swift 值类型和引用类型

    万次阅读 2014-08-20 16:58:08
    Swift中的类型分为两类:一,值类型(value types),每个值类型的实例都拥有各自唯一的数据,通常它们是结构体,枚举或元组;二,引用类型(reference types),引用类型的实例共享它们的数据,通常是一个类。在这篇...
  • 什么是散列(hashable)的数据类型

    万次阅读 2018-03-08 21:41:54
    在Python官方词汇表中,关于hashable类型的定义这样一段话(点击打开链接): An object is hashable if it has a hash value which never changes during its lifetime (it needs a __hash__() method), and can...
  • python对象的内容可变不可变:  因为,变量无类型,如n= 1 #指向int数据类型的变量n,而n没有类型  所以,strings, tuples, 和numbers是不可更改的对象,而list,dict等则是可以修改的对象 ... 而,不可变类型,则为
  • bug经过:点击修改无法展示信息(修改时调用queryOne,以id(long)为,页面传过去的id=1480042498255640-00 ,在数据库中该id=148004249825564012,即错误的id)根本原因:js的number类型有个最大(安全)。...
  • 首先BigDecimal是一个不可变类型,什么是不可变类型呢? 当一个普通类 (class) 的实例不能被...比如大家可能都知道的 Java 中已的一些不可变类型,String (string 的字符串联很没效率,对吧), BigInteger, 和 BigDe
  • MySQL数据类型 含义(符号) tinyint(m) 1个字节 范围(-128~127) smallint(m) 2个字节 范围(-32768~32767) mediumint(m) 3个字节 范围(-8388608~8388607) int(m) 4个字节 范围(-2147483648~21474836
  • 常用数据库的字段类型及大小

    万次阅读 多人点赞 2017-09-10 21:27:07
    Oracle/MSSQL/Mysql 常用数据库的字段类型及大小     ...ORACLE的数据类型  常用的数据库字段类型如下:  ...VARCHAR2 可变长度的字符串 最大长度4000 bytes 做索引的最大长度749  NCHAR 根据字符
  • 5、swift开发iOS——类型

    万次阅读 2017-03-07 23:18:11
    选表示"那儿一个,并且它等于 x "或者"那儿没有"。 Swfit语言定义后缀?作为命名类型Optional的简写,换句话说,以下两种声明是相等的: var optionalInteger: Int? var optionalInteger: Optional 在这...
  • python字典能作为key的数据类型

    万次阅读 2018-08-27 22:04:31
    比如数值/字符串/完全不可变的元组/函数(内建或自定义)/类(内建或自定义)/方法/包等等你能拿出手的,不过的实际意义不高。还有数值型要注意,因为两个不同的相等数字可以相同的哈希,比如1...
  • Rust学习二 变量与可变

    万次阅读 2020-12-30 16:12:28
    变量默认是不可变的,声明一个变量后不可以在改变这个变量的 使用 mut 关键字声明一个变量是可的。 可性是一种权衡。 二 常量 使用 const 关键字,而非 let 声明一个常量 常量声明必须指定类型:const MAX_...
  • 关于Python里面一些常见的类型的,有序无序的比较。...④集合无序,不可索引的,但长度可,id。 ⑤数字不可变,猜想不可索引 ⑥list,可索引,有序,元素和长度可,(这是运用最熟悉的对象...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,553,518
精华内容 1,021,407
关键字:

值不可变类型有哪些