Python学习笔记——可变类型&不可变类型&深拷贝&浅拷贝
2017-06-09 21:28
609 查看
可变类型&不可变类型
可变类型:字典(dict),列表(list)不可变类型:数字(包括int,float等),字符串(str),元组(tuple)
什么是可变&不可变?
num = 100 print(id(num)) num += 100 print(id(num)) print(num)
Output:
>>>10917536
>>>10920736
>>>200
我们看到执行完num+=100,num变量的值修改到了200,为什么
还要说是不可变类型呢。注意到打印出来的id,发现两个num的地
址不同,并非同一个num。过程如下图
也就是说由于num是不可变类型,系统重新定义了一个num变量指向200。
我们在来看一下可变类型,
dict_test = {1:"leo"} print(id(dict_test)) dict_test[2] = "mike" print(id(dict_test)) print(dict_test)
Outpu:
>>>139729179319240
>>>139729179319240
>>>{1:”leo”, 2:”mike”}
结果并没有像上面的num一样,重新产生一个变量。所以,可变与
不可变的本质是针对value部分而言,num = 100,num2 = 200,
num2 = num是完全可以的,只是将num2引用指向value为100的
内存地址。
相关文章推荐
- Python学习笔记摘要(一)类型 字符串 函数 列表 深浅拷贝
- python可变类型vs不可变类型,深拷贝vs浅拷贝
- 流畅的python学习笔记第八章:深拷贝,浅拷贝,可变参数
- python 可变数据类型&不可变数据类型
- Python学习笔记——可变对象和不可变对象
- Python中的可变,不可变对象;值类型,引用类型;浅拷贝,深拷贝理解
- python 可变数据类型&不可变数据类型
- 理解python可变类型vs不可变类型,深拷贝vs浅拷贝
- python学习笔记(re module && os)
- Effective C# 学习笔记(二十)不可变的原子值类型的好处
- 「学习笔记——Python」Google's Python Class 学习笔记
- Python学习笔记之集合类型(set, frozeset)
- python学习笔记3-核心类型-列表
- linux & C++Primer 学习笔记--标准库vector类型
- Python3.3 学习笔记3 - 数据类型和运算
- python学习笔记-zipimport.ZipImportError: can't decompress data; zlib not available
- python学习笔记2-核心类型-字符串
- Python学习笔记【引用VS拷贝】
- python学习笔记4-核心类型-字典
- Python学习笔记一:数据类型转换