3.自动转换与强制转换

1.缓存机制 同一个数ID一样

​ 作用:为了减少内存空间,提高代码执行效率

1.1同一文件下

​ 1)Number数据类型:

​ int整型缓存: -5~正无穷

​ float浮点型: 非负数

​ bool布尔型: 同真同假ID一样

​ complex复数:除了正虚数,其他ID都不一样

​ 2)容器类型:

​ 除了str字符串和空元组,其他ID都不一样

1.2不同文件下

​ int整型:-5~256

2.自动转换

​ 只局限在Number数据类型上:

​ 规则:不同类型数据向高精度类型转换

​ 精度从低到高:bool布尔<int整型<float浮点型<complex复数类型

​ 例如:var=33+44.44 输出结果就是浮点型

3.强制转换

3.1Number数据类型的强制转换

​ int整型可以强转类型:int float(小数去掉了) bool(1真,0假)

​ float浮点型强转类型:int float bool #往上填零

​ complex复数强转: int float bool complex

​ bool布尔类型:可以强转一切,六大类型都可以,非零非空为真,零空None为假

3.2容器的强制转换

1)str字符串,可以强转一切,六大类型都可以
2)list列表强转:

​ 规则:如果是字符串,里面的内容一个一个列出来,变成新类型的元素

​ 如果是字典,只转键,不要值

​ 其他类型tuple元组、set集合只改变成中括号[]

3)tuple元组类型:

​ 规则:与list列表一样:如果是字符串,里面的内容一个一个列出来,变成新类型的元素

​ 如果是字典,只转键,不要值

​ 其他类型list列表、set集合只改变成小括号()

4)set集合类型:无序,去重

​ 规则:与list列表一样:如果是字符串,里面的内容一个一个列出来,变成新类型的元素

​ 如果是字典,只转键,不要值

​ 其他类型list列表、set集合只改变成大括号{}

5)dict字典类型强转:

​ n级容器=一个容器里逐层套(n-1)个容器

​ 提取容器的值

		var=[['a',22],['b',33],('c',44)]
		print(var[2][0])	#取容器里面的值,逐层剥皮找

​ 要求:只能强制转换等长的二级容器,并且容器元素的个数只能是2个

​ (1)list[]和tuple()里面只放list、tuple容器

		var1=[[‘a’,111],(‘b’,222)]	
    	        var2=([‘a’,111],(‘b’,222),(‘c’,333))	
		res1=dict(var1)		
                res2=dict(var2)
		print(res1,res2)

​ (2)set{}里面只放tuple()

		var={(‘a’,11),(‘b’,22)}	
    		res=dict(var)
        	print(res)
原文地址:https://www.cnblogs.com/jia-shu/p/14013365.html