python基础之可变数据类型与不可变数据类型
一、什么可变数据类型和不可变数据类型
可变数据类型:value值改变,id值不变;不可变数据类型:value值改变,id值也随之改变。
二、如何确定一种数据类型是可变的还是不可变的
根据可变数据类型与不可变数据类型的概念,只需要在改变value值的同时,使用id()函数查看变量id值是否变化就可以知道这种数据类型是可变的还是不可变的了。
数字:
,从图中可以看出当数字的值改变时,变量id值也改变了,所以数字是不可变数据类型
字符串:
,从图中可以看出当字符串的值改变时,变量id值也改变了,所以字符串是不可变数据类型
列表:
,从图中可以看出,当列表中的某个元素改变时,列表的id值没有改变,所以列表是可变数据类型
字典:
,从图中可以看出,当字典的键值对的value部分改变时,字典的id值没有改变,所以字典是可变数据类型
布尔:
,从图中可以看出当布尔的值改变时,变量id值也改变了,所以布尔值是不可变数据类型
元祖:因为元祖元素是不可修改的,所以元祖是不可变数据类型
三、小数池
python中为了减少开辟内存造成的时间开销,对于三位内的整型数字类型数据,在开辟一块内存空间后,后面的三位内的整型数据都放到这个内存空间中,所以三位以内的整型数字类型的id值都是相同的。
python基础之可变数据类型与不可变数据类型的更多相关文章
- Python基础入门教程(4)(数据类型)
人生苦短,我学Pyhton Python(英语发音:/ˈpaɪθən/), 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于199 ...
- Python基础—05-总结:双重循环,数据类型
总结 双重循环 冒泡排序 lt = [1, 5, 7, 3, 2, 4] # 计算元素的个数 n = len(lt) # 外层循环控制圈数 for i in range(n-1): for j in ...
- Python基础部分的疑惑解析——运算符和数据类型(5)
运算符 最后得到数值的: 算数运算符 赋值运算符 最后得到布尔值的: 成员运算符:in not in 逻辑运算符 and or 没有优先级就是按顺序执行 比较运算符 数据类型 1.整 ...
- Python基础部分的疑惑解析——运算符和数据类型(3)
补充上一篇: #! /user/bin/env python 代码内声明这一个就可以用1.py类似的文件直接执行,但是要在linux内加权限, 不需要在前面加python 1.py执行了.文件可以 ...
- python基础语法1 用户交互,基本数据类型,格式化输出,运算符
与用户交互: 输入: python2: input一定要声明你输入的类型 >>> input(">>:") >>:sean Traceba ...
- python基础(二)----数据类型
Python基础第二章 二进制 字符编码 基本数据类型-数字 基本数据类型-字符串 基本数据类型-列表 基本数据类型-元组 可变.不可变数据类型和hash 基本数据类型-字典 基本数据类型-集合 二进 ...
- 进击的Python【第二章】:Python基础(二)
Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...
- python基础之pip、.pyc、三元运算、进制、一切皆对象、可变与不可变类型
一.pip(下载工具==yum) 1.重点(必须掌握的) 列出已安装的包 pip list 安装要安装的包 pip install xxx 安装特定版本 pip install django==1.1 ...
- Python基础(list和tuple)可变集合和‘不可变’集合
list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...
随机推荐
- 基于JAVA语言的selenium总结
目录一.基本语句 1.循环控制(break,continue) 3.字符的替换(replace,repalceFirst,replaceAll,regex) 4.字符串的连接("+" ...
- swift 相机、相册、定位的权限判断
//是否开启相机权限 func IsOpenCamera() -> Bool{ let authStatus = AVCaptureDevice.authorizationStatus(for: ...
- linux 内核启动流程分析,移植
分析 linux-2.6.22.6 内核启动流程 移植 linux-3.4.2 到 JZ2440 开发板 Linux内核源码百度云链接: https://pan.baidu.com/s/1m1ymGl ...
- ef 数据库创建失败
在ef之前创建了一个数据库,然后删除后,再用ef创建,失败! USE [master] GO /****** Object: Database [DBname] ******/ ALTER DATAB ...
- Javascript 对象复制(深浅拷贝)
一.数据类型分类: 基本变量 引用类型 二.什么叫做指针指向 栈内存.堆内存.指针指向(如下红圈圈的斜线). 三.赋值.拷贝.引用区别? 赋值指一个变量赋予某个值,包含两种方式,一种是直接量,另一种, ...
- zabbix准备:php安装
一.安装php依赖库 ftp://xmlsoft.org/libxml2/libxml2-2.9.3.tar.gz yum install python-devel -y cd /download/ ...
- 8.1-uC/OS-III多任务应用
1.app.c: ( 1) .分别为每个任务分配一个OS_TCB. (2). 斥信号量( mutex)是一个内核对象(一个结构体),用于保护共享资源.任务要访问共享资源就必须先获得 mutex. mu ...
- Linux查看访问IP
Linux查看访问IP https://blog.csdn.net/tojohnonly/article/details/82772323
- adb移动端测试
1. Android介绍 Android 是google公司主导的一个开放的手机操作系统,不过目前已经超过了手机的局限,而定位于移动设备的操作系统. Android一词的本义指“机器人”,取名原因很简 ...
- dxCalloutPopup 简单使用教程
Panel1.Visible := False; // 设置panel初始不显示 dxCalloutPopup1.PopupControl := Panel1; // 设置弹出窗口内容为哪个控件 dx ...