Day-2-2 数据转换
Day-2-2 数据转换
集合:set()
例如:
set_variable = {"刘德华","郭富城","张学友","张小龙"}
集合的属性:1)、集合是无序排列的
2)、集合有去重功能
集合的方法:交集、差集、并集、补集
怎样建立一个空集合:只能用 set() 方法创建,用 {} 创建的是字典
字典{}: 用键值对表示的集合
语法: dict_var = {键1:值1,键2:值2,键3:值3,...}
字典中对键的要求:可哈希的数据类型(数据类型(int、float、bool、complex)、str、tuple) 注:可哈希的数据类型是不可变的数据类型
哈希算法,都是无序的。目的是为了把数据均匀地分配到内存中,底层用了取模类似的算法。
推荐用:用变量命名的字符串的方法用作键的命名。不允许用列表、集合、字典使用
变量的缓存机制
1)number部分:
-
对于整数 -5~ 正无穷范围内,具有相同的id值
-
对于浮点数而言,非负数范围的数,具有相同的id值
-
对于bool值,在值相同的情况下,具有相同的id值
-
对于复数在实数+虚数这种结构,永远不相同的id(只有虚数例外
2)容器类部分
- 字符串和空元组,在相同的情况下,id相同
- 列表、元组、字典、集合等都不相同(不管什么情况)
不同文件(模块里)部分数据驻留小数据池中
变量的缓存机制意义:节省内存
一、数据类型转换
强制类型转换:int(...)、float(...)、str(...)、complex(...)、bool(...)
bool 强转 False 的十种类型:False / "" / [] / {} / () / None / 0 / 0.0 / set() / 0j
自动类型转换:Number(int、float、bool、complex)
规则:精度从低到高的顺序转换:bool<int<float<complex
二、容器类数据类型转换
字符串、列表、元组、集合、字典
1)字符串:可以转换任何数据类型 str(...)
内置函数:repr(string) --- 生成带双引号的字符串
2)列表:list(...)
list(str):产生字符串的每一个字符组成的列表
list(tuple):改元组()为 [ ]
list{dict}:生成字典里的键组成的列表
3)元组:tuple(...) 同上
4)集合:set(...) 同上, 但是变成无序的集合
5)字典:dict(...)
多级容器:container = [1,3,5,(2,4,6,{'a':1,'b':[90,85,'binge]})]
res = container [-1] [-1] ['b'] [-1]
- 外层可以是列表或元组或集合,里面的容器元组或列表(推荐)
- 如果里面的是集合、字符串,语法上允许,但有局限性(不推荐)
浙公网安备 33010602011771号