Python面试中,如何区分可变与不可变数据类型?

更新于
2026-10-11 15:38:45
0阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1163个文字,预计阅读时间需要5分钟。

Python面试中,如何区分可变与不可变数据类型?

Python中,可变数据类型和不可变数据类型是基础且重要的概念。简单来说,这里的可变和不可变指的是变量值改变时,数据地址是否会变化。

可变数据类型:如列表(list),如果改变了变量的值,数据地址也会发生变化。

不可变数据类型:如整数(int)、浮点数(float),即使变量值改变了,数据地址不会变化。

Python可变数据类型和不可变数据类型是一个基础而且重要的考点。简单地说:这里的可变和不可变是指当变量改变的时候,数据的地址是否会改变!

可变数据类型:如果改变了变量的值,相当于是新建了一个对象(即地址会被改变)。

可变数据类型:变量的值发生变化,但是对象的地址不会改变。

不可变数据类型:元组,字符串,数值。

可变数据类型:字典,列表,集合。

引用

在讲可变数据类型和不可变数据类型之前我们要讲一下引用的概念。python变量保存的是对象的引用,这个引用指向堆内存里的对象,在堆中分配的对象分为两类,一类是可变对象,一类是不可变对象。例如:s1="abc"。

其实变量s1 就是对象 abc的引用,s1指向了存储abc的内存地址,如果想看s1的地址值,可以使用函数id,id会把地址值转换成十进制。使用print(id(s1))即可,如下图所示:

不可变数据类型

我们以字符串举例,直接上代码:

s1="abc" print(id(s1)) s1="xyz" print(id(s1))

输出:

140712532603136 140712532603168

从输出结果可见改变字符串类型变量的值,地址也会随之变化。

我们接下来看这个实例,也是面试笔试中经常出的题目。

阅读全文

本文共计1163个文字,预计阅读时间需要5分钟。

Python面试中,如何区分可变与不可变数据类型?

Python中,可变数据类型和不可变数据类型是基础且重要的概念。简单来说,这里的可变和不可变指的是变量值改变时,数据地址是否会变化。

可变数据类型:如列表(list),如果改变了变量的值,数据地址也会发生变化。

不可变数据类型:如整数(int)、浮点数(float),即使变量值改变了,数据地址不会变化。

Python可变数据类型和不可变数据类型是一个基础而且重要的考点。简单地说:这里的可变和不可变是指当变量改变的时候,数据的地址是否会改变!

可变数据类型:如果改变了变量的值,相当于是新建了一个对象(即地址会被改变)。

可变数据类型:变量的值发生变化,但是对象的地址不会改变。

不可变数据类型:元组,字符串,数值。

可变数据类型:字典,列表,集合。

引用

在讲可变数据类型和不可变数据类型之前我们要讲一下引用的概念。python变量保存的是对象的引用,这个引用指向堆内存里的对象,在堆中分配的对象分为两类,一类是可变对象,一类是不可变对象。例如:s1="abc"。

其实变量s1 就是对象 abc的引用,s1指向了存储abc的内存地址,如果想看s1的地址值,可以使用函数id,id会把地址值转换成十进制。使用print(id(s1))即可,如下图所示:

不可变数据类型

我们以字符串举例,直接上代码:

s1="abc" print(id(s1)) s1="xyz" print(id(s1))

输出:

140712532603136 140712532603168

从输出结果可见改变字符串类型变量的值,地址也会随之变化。

我们接下来看这个实例,也是面试笔试中经常出的题目。

阅读全文