python面试题(-)可变数据类型与不可变数据类型
python3中有六个标准的数据类型:number(数字型)、string(字符串型)、list(列表)、type(元祖)、dictionary(字典)、set(集合),其中不可变类型三个:number、type、stri;剩下的三个是可变数据类型。
0x01:不可变数据类型
对于判断是否为可变数据类型,我们可以用id函数,它的作用是获取对象的内存地址。假如我们写了下面两行代码:
>>> a=5
>>> id(5)
1351465552
第一行声明了一个number类型的变量,并给他赋值为5,第二行获取到了a这个对象的内存地址。
下面我们改变一下a的值,在id一下试试:
>>> a=5
>>> id(5)
1351465552
>>> a=6
>>> id(a)
1351465584
可以看到当a的值被改变时,a这个number类对象的内存地址也发生了变化。也就是说,一个内存地址只能对应一个值,内存地址与值的对应关系是不能变的,这种叫不可变数据类型。同样,字符串也是。
>>> s='qwer'
>>> id(s)
2374200496792
>>> s='qwr'
>>> id(s)
2374200498976
元祖里面的值不能被修改,所以也为不可变数据类型,但如果元祖里含有列表的话,列表里面的值可以被修改:
>>> t=(1,2,3,[4,5,6])
>>> t[3]
[4, 5, 6]
>>> t[3][1]
5
>>> t[3][1]=6
>>> t[3]
[4, 6, 6]
0x02:可变数据类型
可变数据类型就是当对象的值改变是,对象的内存地址不会改变。用list试一下
>>> a=[4,5,6]
>>> id(a)
2374200503880
>>> a[1]
5
>>> a[1]=6
>>> a[1]
6
>>> id(a)
2374200503880
但是你如果像下面这样写的话,那地址就会改变了。
>>> a=[1,2,3]
>>> id(a)
2374200502984
>>> a=[4,5,6]
>>> id(a)
2374200503880
因为这样写的话,就不是改变a的值了,此时的a已经不再是上面哪一个了,它是一个新的list对象
(ps:本人太菜,若有错误的地方欢迎大佬随时责骂。。。。xixixii)
python面试题(-)可变数据类型与不可变数据类型的更多相关文章
- python基础之可变数据类型与不可变数据类型
一.什么可变数据类型和不可变数据类型 可变数据类型:value值改变,id值不变:不可变数据类型:value值改变,id值也随之改变. 二.如何确定一种数据类型是可变的还是不可变的 根据可变数据类型与 ...
- python的可变数据类型和不可变类型
python里面一切皆对象 ython的每个对象都分为可变类型和不可变类型 整形,浮点型,字符串,元组属于不可变类型,列表,字典是可变类型 不可变数据类型 对不可变类型的变量重新赋值,实际上是重新创建 ...
- 一道问题引出的python中可变数据类型与不可变数据类型
一. 问题的提出 我们先来看两个对比 第一道题,当对象为整数时,最终结果:b = 2, a = 1,b的变化没有引起a的变化 a = 1 b = a b += 1 print(a) print(b) ...
- python 可变数据类型和不可变数据类型(7)
python数据类型分别有整数int / 浮点数float / 布尔值bool / 元组tuple / 列表list / 字典dict,其中数据类型分为两个大类,一种是可变数据类型:一种是不可变数据类 ...
- python 可变数据类型 和 不可变数据类型
在 python 中,类型属于对象,变量是没有类型的: a=[1,2,3] a="Runoob"以上代码中,[1,2,3] 是 List 类型,"Runoob" ...
- Python基础(list和tuple)可变集合和‘不可变’集合
list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...
- Python基础(3)_可变对象与不可变对象、列表、元祖和字典
可变对象与不可变对象 实例被创建后,身份和类型是不可变的, 如果值是不可以被修改的,则是不可变对象 如果值是可以被修改的,则是可变对象 #在id不动,type也不动,value被修改了,则称为可变 # ...
- python27期day03:字符串详解:整型、可变数据类型和不可变数据类型、进制转换、索引、切片、步长、字符串方法、进制转换、作业题。
1.%s: a = "我是新力,我喜欢:%s,我钟爱:%s"b = a%("开车","唱跳rap")print(b)2.整型: 整数在Pyt ...
- python的可变类型和不可变类型
Python有六种数据类型:数字类型.字符串类型.列表类型.元组类型.字典类型和集合类型 其中不可变类型包括三种:数字类型.字符串类型和元组类型 剩余三种为可变类型:列表类型.字典类型和集合类型 可变 ...
- Python中的不可变对象类型与可变对象类型
https://blog.csdn.net/answer3lin/article/details/86430074 其实各个标准资料中没有说明Python有值类型和引用类型的分类,这个分类一般是C++ ...
随机推荐
- C#: Get current keyboard layout\input language
原文 https://yal.cc/csharp-get-current-keyboard-layout/ On some occasions, you may want to get a " ...
- 潜移默化学会WPF(难点控件treeview)--改造TreeView(CheckBox多选择版本),递归绑定数据
原文:潜移默化学会WPF(难点控件treeview)--改造TreeView(CheckBox多选择版本),递归绑定数据 目前自己对treeview的感慨很多 今天先讲 面对这种 表结构的数据 的其中 ...
- fzu-1753 Another Easy Problem-高速求N!多少个月p
它计算每个C(N,M)什么号码乘以像.... #include <iostream> #include<stdio.h> #include<vector> #inc ...
- ABP框架——单表实体流程
实体实体配置文件菜单本地化语言:xml文件权限配置领域服务应用层CRUDDTOSPA路由:app.js视图生成:.html,.js
- WPF中获取TreeView以及ListView获取其本身滚动条的方法,可实现自行调节scoll滚动的位置(可相应获取任何控件中的内部滚动条)
原文:WPF中获取TreeView以及ListView获取其本身滚动条的方法,可实现自行调节scoll滚动的位置(可相应获取任何控件中的内部滚动条) 对于TreeView而言: TreeViewAut ...
- ASP 用隐藏域解决Http无状态问题
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head> < ...
- swift 如何控制view的显示与隐藏
swift 如何控制view的显示与隐藏 UIView有一个属性 hidden let line: UILabel = UILabel() 默认是显示的 需要显示它的时候:line.hidden = ...
- Android零基础入门第30节:两分钟掌握FrameLayout帧布局
原文:Android零基础入门第30节:两分钟掌握FrameLayout帧布局 前面学习了线性布局.相对布局.表格布局,那么本期来学习第四种布局--FrameLayout帧布局. 一.认识FrameL ...
- ArchLinux 安装记录
主要步骤 下载镜像及刻录 开机安装 联网 编辑镜像站文件 分区 格式化分区并挂载 安装基本操作系统 配置基础操作系统 引导系统 用户管理 网络配置 安装Gonme桌面环境 其他优化 开始准备 下载镜像 ...
- Oracle序列使用:建立、删除、使用
Oracle序列使用:建立.删除 在开始讲解Oracle序列使用方法之前,先加一点关于Oracle client sqlplus的使用,就是如果执行多行语句的话一定要加“/”才能表示结束,并执行!本篇 ...