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.net.ConnectException: Connection refused: no further information
java.net.ConnectException: Connection refused: no further information at sun.nio.ch.SocketChannelImp ...
- SpringBoot-整合多数据源
整合多数据源 这里有两种,分包数据源和注解数据源,这里讲分包数据源 配置文件中新增两个数据源 spring.datasource.test1.driverClassName = com.mysql.j ...
- 【叶问】 MySQL常用的sql调优手段或工具有哪些
MySQL常用的sql调优手段或工具有哪些1.根据执行计划优化 通常使用desc或explain,另外可以添加format=json来输出更详细的json格式的执行计划,主要注意点如下: ...
- jsp fmt标签格式化double数字
<fmt:formatNumber value="${zjdl.ygdl }" pattern="0.00" />
- js将字符串转换成json的三种方式
1,js自带的eval函数,其中需要添加小括号eval('('+str+')'); function strToJson(str){ var json = eval('(' + str + ')'); ...
- GatewayWorker 分布初试
参考官网分布说明 http://doc2.workerman.net/326144 准备:两台内网服务器A1,A2 A1服务器写PHP脚本前端访问 <?php // 注意这里使用A2服务器的内网 ...
- PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
一.数字补0. 如果要自动生成学号,自动生成某某编号,就像这样的形式“d0000009”.“d0000027”时,那么就会面临一个问题,怎么把左边用0补齐成这样8位数的编码呢?我想到了两种方法实现这个 ...
- 微服务——RestTemplate
GET请求: 第一种:getForEntity: 此方法返回的是ResponseEntity,该对象是Spring对HTTP请求响应的封装. RestTemplate rt = new RestTem ...
- IOT-web替换某一个前台版本
比如 替换endpoint 1,首先改写 package.json文件,记得去掉^,改写成某一个版本 2.删除相应的内容 3.执行 npm install 4.最后 build
- elasticsearch 处理index 一直INITIALIZING状态
elasticsearch一个节点异常重启后有一个index恢复的过程中状态一直INITIALIZING 处理方法 PUT index_name/_settings { "index&quo ...