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]

  • 外层可以是列表或元组或集合,里面的容器元组或列表(推荐)
  • 如果里面的是集合、字符串,语法上允许,但有局限性(不推荐)
posted @ 2021-02-19 17:28  lxk0210  阅读(51)  评论(0)    收藏  举报