精华内容
下载资源
问答
  • python中不可变数据类型和可变数据类型

    万次阅读 多人点赞 2019-05-29 17:43:15
    不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。 可变数据类型 :当该数据类型的对应变量的值发生了改变,那么它对应的内存...

    名词解释

    不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。
    可变数据类型 :当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型。

    标准数据类型

    Python3 中有六个标准的数据类型:
    Number(数字)
    String(字符串)
    List(列表)
    Tuple(元组)
    Set(集合)
    Dictionary(字典)

    Python3 的六个标准数据类型中:
    不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
    可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

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

    千次阅读 多人点赞 2019-01-06 23:44:46
    Python3可变数据类型不可变数据类型 有很多人在刚开始接触 python 这个语言的时候,总是搞不清楚什么是 可变数据类型 什么是 不可变数据类型,今天就让我们通过这篇小文章来详细了解一下。 知识点目录: 1....

                              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数据类型有哪些,哪些是可类型,哪些是不可变类型? 类型: 整数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. 元组
    展开全文
  • 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、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。”

        最后,大家主要区分开什么是变量值的变化、什么是变量引用的对象地址的变化这些概念就很清楚了,千说万说都不如自己动手写一些程序测试一下看看来得实在,所以建议大家有什么疑惑可以自己写一些基本的程序测试一下便知道结果。如果大家有新的意见,欢迎补充,谢谢。
    展开全文
  • Python的可变数据类型列表和字典,不可变数据类型有整型(int),浮点型(float),字符串型(String)和元组型(tuple).不可变数据类型不可变指的是变量引用的地址处的值是不可变的。例如int类型,改变该类型...
  •  根据可变数据类型不可变数据类型的概念,只需要在改变value值的同时,使用id()函数查看变量id值是否变化就可以知道这种数据类型是可的还是不可变的了。  数字:,从图中可以看出当数字...
  • 不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。 可变数据类型 :当该数据类型的对应变量的值发生了改变,那么它对应的内存...
  • 开始学python时不理解可变数据类型不可变数据类型到底该怎么区分?当时也没时间多想,后来有一次和一个朋友又说到这个问题,所以决定去弄个究竟。谨以此文献给更多的后来者参考。 可变数据类型:当该数据类型对应...
  • 看了一下网络相关文章,还是决定自己写一下,转载必须注明出处... 不可变数据类型 :变量引用的数据类型,在更改数值的时候,不存在不开辟新内存的行为,此数据类型不可变数据类型。 在 python 中,strings, tup...
  • 将python3的基本数据类型有六种: Number(int, float, bool, complex),String, List, Tuple, Dictionary, Set...不可变数据类型:Number, String, Tuple 两者区别: >>> a = [1, 2] >>> print...
  • 有序序列有:列表、元组、字符串 无序序列有:字典、集合 可序列有:列表、字典、集合 不可变序列有:字符串、元组
  • python中的可不可变数据类型

    千次阅读 2017-09-05 22:06:45
    python中的可变数据类型包括字典和列表,而不可变数据类型包括字符串、数字和元组。 可变数据类型中,即便对数据进行更改,数据的id也不会发生变化,而不可变数据类型中,只要对数据的值进行更改,则数据的id就发生...
  • Python的基本数据类型大致可分为6类:1.Number(数字) 2. String(字符串) 3. Tuple (元组) 4. List(列表) 5. Dictionary (字典) 6....这6种类型又可以分为可类型和不可变类型,其中不可变类型有:Number(数字) S...
  • 一、python中数据类型(红色为可变类型) 1、字符串 str 2、布尔类型 bool 3、整数 int  4、浮点数 float 5、数字 (int和float)6、列表 list 7、元组 tuple8、字典 dict 9、日期 date 二、可变类型 ...
  • Java数据类型的可不可变

    千次阅读 2019-06-29 17:02:06
    不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。其中基本数据类型都是不可变数据类型,例如int,如果一个int类型的数据发生...
  • 不可变数据类型也就是说集合中的每一个元素,一旦放到集合中,这个元素就是不能被修改的 集合类型要求元素是独一无二的,不能存在相同的元素,但是如果其中的某一个元素是可以被改变的,它一旦改变之后可能会和其他...
  • 在python中的数据可以分为可变数据类型和不变数据类型可变数据类型: 像list,dict之类的变量就是可变数据类型,变量名存储的是一个地址,该地址指向一个具体的对象,并且不管对变量的值即对象做怎么样的操作,都...
  • 初学python的时候,可能会有很多疑惑,尤其是最先接触的所谓的“可变数据类型”和“不可变数据类型”。python与C/C++不一样,它的变量使用有自己的特点,当初学python的时候,一定要记住“一切皆为对象,一切皆为...
  • 目录定义:举例说明: ...不可变类型定义:变量值改变,变量地址必须改变(Number(数值)String(字符串)Tuple(元组)) 举例说明: 可变类型举例(代码如下): list1 = [1, 2, 3, 4, 5] print(id(list1)
  • 在Python中主要有两种数据类型, 一种是可变数据类型, 另一种是不可变数据类型 不可变数据类型 数字型: int, float, complex, bool, long 字符型: str 元 祖: tuple 可变数据类型 列表: list ...
  • js的数据类型 在讲解我们要说明的问题之前,需要知道js有哪些数据类型。js有两种数据类型:基本数据类型和引用数据类型 基本数据类型:number、string、boolean、undefined、null、symbol 在 Java 中,字符串是...
  • 学习Python首先我们要知道Python变量保存的是值引用 也可以说:变量是对内存及其地址的抽象 Python:一切变量都是对象 ...变量的每一次初始化,都开辟了一个新的空间,将新内容的地址赋值给...
  • 下面以一道题为切入点: 下面哪个是python中不变的数据结构? A.set B.list C.tuple D.dict 答案:tuple 解析:Python中的数据类型包括: ...不可变类型:number、string、tuple 可类型:list、dict、set...
  • python可不可变类型

    千次阅读 2018-08-10 14:20:53
    列表是可的(Mutable) 1)索引改变 2)方法改变 字符串是不可变的(Immutable) 通过索引改变会报错 ...字符串方法只是返回一个... 不可变数据类型 list, dictionary, set, numpy array, user defined obj...
  • 变类型不可变类型的区分

    千次阅读 2018-10-28 19:57:24
    变数据类型列表(list),字典(dict),集合(set)-------不可哈希 即:变量名存储的是一个地址,该地址指向一个具体的对象,并且不管对变量的值即对象做怎么样的操作,都不会改变变量名存储的地址。 例子: ...
  • python 可变数据不可变数据解析

    千次阅读 2013-08-14 10:00:20
    python 的数据类型和C不一样,有一种类型:可类型 (mutable)和不可变类型(immutable) Python中所有变量都是值的引用,也就说变量通过绑定的方式指向其值。 而这里说的不可变指的是值的不可变。 对于不可变类型...
  • 不可变类型 利用set特性去重 ids = [1, 3, 8, 3, 8, 1, 9, 9, 9, 1] ids = list(set(ids)) 新建一个list,循环遍历 ids = [1, 3, 8, 3, 8, 1, 9, 9, 9, 1] new_ids = [] for item in ids: if item not in new_ids: ...
  • Python中的可不可变类型

    千次阅读 2018-02-18 17:49:15
    首先,我们需要知道在python中哪些是可变数据类型,哪些是不可变数据类型。可变数据类型列表list和字典dict;不可变数据类型:整型int、浮点型float、字符串型string和元组tuple。用一句话来概括上述过程就是:...
  • 不可变类型有string,number,tuple. 当进行修改操作时,可变类型传递的是内存中的地址,也就是说,直接修改内存中的值,并没有开辟新的内存。 不可变类型被改变时,并没有改变原内存地址中的值,而是开辟一块新的...
  • Java中可变类型不可变类型

    千次阅读 2015-01-05 10:43:09
    Java中可变类型不可变类型

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,925,640
精华内容 1,170,256
关键字:

列表是不可变数据类型