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)