6,字典(dict)

字典是 无序键不重复 且 元素只能是键值对可变的容器

data = { "k1":1,  "k2":2 }
  • 容器

  • 元素必须键值对

  • 键不重复,重复则会被覆盖

    data = { "k1":1, "k1":2 }
    print(data) # {"k1":2}
  • 无序(在Python3.6+字典就是有序了,之前的字典都是无序。)

    data = { "k1":1,  "k2":2 }
    print(data)

    6.1 定义

    字典中对键值得要求:

    • 键:必须可哈希。 目前为止学到的可哈希的类型:int/bool/str/tuple;不可哈希的类型:list/set/dict。(集合)

    • 值:任意类型。

    data_dict = {"木木":18,A : 50123:5,(3, 6, 9):["木木","小林"]
    }

    一般在什么情况下会用到字典呢?

    当我们想要表示一组固定信息时,用字典可以更加的直观,例如:

    # 用户列表
    user_list = [ ("mm","18"), ("amin","999") ]
    user_list = [ {"name":"mm","pwd":"693"}, {"name":"clic","pwd":"789"} ]

    6.2独有功能

    1,获取值

    user = {"name":"mm","pwd":"693","name":"clic","pwd":"789",}
    ​
    player = user.get("name")   #键不存在,则返回None
    print(player)

    2,所有的键

    user = {"name":"mm","pwd":"693","name":"clic","pwd":"789",}
    data = user.keys()
    print(data)

    注:在python2中字典.keys()直接获取的是列表,在python3中返回的是高仿列表,且这个高仿列表可以被循环

user = {"name":"mm","pwd":"693","name":"clic","pwd":"789",}
for ele in user.keys():print(ele)

3,所有的值

user = {"name":"mm","pwd":"693","name":"clic","pwd":"789",}
data = user.values()
print(data)

注:在python2中字典.values()直接获取的是列表,在python3中返回的是高仿列表,且这个高仿列表可以被循环

4,所有的键值

user = {"name":"mm","pwd":"693","name":"clic","pwd":"789",}
​
for item in user.items():print(item[0], item[1]) # item是一个元组 (键,值)

5,设置值

user = {"name":"mm","pwd":"693","name":"clic","pwd":"789",}
user.setdefault("age", 18)
print(user)

6,更新字典键值对

user = {"name":"mm","pwd":"693","name":"clic","pwd":"789",}
user.update({"age":18, "li":88})    #字典user中没有的键直接添加,有的键则更新值
print(user)

7,移除指定键值对

user = {"name":"mm","pwd":"693","name":"clic","pwd":"789",}
user.pop({"pwd":"789"}) #会有返回值,可以用变量接收
print(user)

8,按照顺序移除(后进先出)

user = {"name":"mm","pwd":"693","name":"clic","pwd":"789",}
data = user.popitem({"pwd":"789"})
​
print(user)
print(data) 
  • py3.6后,popitem移除最后的值。

  • py3.6之前,popitem随机删除。

6.3公共功能

1,求并集(Python3.9新加入)

v1 = {"a": 1, "b": 3}
v2 = {"a": 2, "c": 4}
​
v3 = v1 | v2        #如果有重复的,|后面的字典的值就会把前面字典的值覆盖
print(v3) 

2,长度

v1 = {"a": 1, "b": 3}
d = len(v1)
print(d)

3,是否包含

v2 = {"a": 2, "c": 4}
v1 = "a" in info
print(v1)
​
v3 = "c" in v2.keys()
print(v2)
​
if "a" in v2:pass
else:pass

4,索引(键)

字典不同于元组和列表,字典的索引是,而列表和元组的所有则是 0、1、2等数值

v1 = {"a": 1, "b": 3}
​
print(v1["a"])      #通过键为索引时,键不存在会报错,建议用get方法获取值

5,根据键 修改值 和 添加值 和 删除键值对

v1 = {"a": 1, "b": 3}
#修改
v1["a"] = "2"
​
#增加
v1["c"] = 4
​
#删除
del v1["b"]
v1.pop("b")
#以上操作想看结果需打印

6,for循环

v = {"a": 1, "b": 3}
#取所有键
for key in v:print(key)
​
for ietm in v.keys():print(item)#取所有值
for value in v.value()print(value)#取所有键和值
for key, value in v.items():print(key, value)

6.5转换

l = dict(list/set/tuple)

其他

1,存储原理

字典把键通过哈希处理,得到的数值求余得到存储位置,与集合类似,速度就很快

2,嵌套

字典:

字典的键必须可哈希(list/set/dict不可哈希)

字典的值可以是任意类型

字典的键和集合的元素在遇到布尔值和1,0时,要注意重复的情况

元组的元素不可以被替换

#练习题
""" SH601778,股票名称:中国晶科、当前价:6.29、涨跌额:+1.92。SH688566,股票名称:吉贝尔、当前价:"""
​
header = ['股票名称', '当前价', '涨跌额']
stock_dict = {'SH601778': ['中国晶科', '6.29', '+1.92'],'SH688566': ['吉贝尔', '52.66', '+6.96'],'SH688268': ['华特气体', '88.80', '+11.72'],'SH600734': ['实达集团', '2.60', '+0.24']
}
#先把字典的键和值取出来
for key,value in stock_dict.items():# print(key, value)
​l = []for index in range(len(header)):t = "{}:{}".format(header[index], value[index])# print(t)l.append(t)re = '、'.join(l)msg = "{},{}。".format(key, re)print(msg)

7,浮点型

1,类型转换时,浮点型转换为整型,会将小数部分去掉

2,保留小数后n位

a = 3.117456
b = round(a,4)
print(b)#保留a后四位小数点同时还会四舍五入,结果:3.1175

3,因为浮点型的储存原理,所以会导致不够精准

3.1,浮点型会直接转换为二进制

3.2,让小数部分一直乘2,小于1则用结果继续乘,大于1则结果减1继续乘,等于1则结束

3.3,将得到的二进制用科学计数法表示,小数点前只保留一位

3.4,存储在电脑上,以32位为例,分为sign(1),exponent(8),fraction(23)

sign(1) 存正负,正数就存0,负数就存1

exponent(8) 存指数部分,可表数据范围:0-255,负数范围:-126~127,计算时让[指数+127]得到的值转换为二进制存储在这就行

fraction(23) 存科学计数法中小数点后的小数部分,因为最多存23位,所以导致不准确

4,需要精确小数计算时:

import decimal
​
a = decimal.Decimal("0.111")
b = decimal.Decimal("0.222")
c = a + b
print(c) #0.333

python基础补漏-字典和浮点型相关推荐

  1. python基础03/字典

    python基础03/字典 内容大纲 1.字典 1.字典 字典是无序,可变的数据类型 字典:用于存储数据,储存大量数据,字典要比列表快 1.1 定义一个列表 lst1 = ["老大" ...

  2. 刻意练习:Python基础 -- Task06. 字典与集合

    背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...

  3. python基础之字典的嵌套

    博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏. ...

  4. python基础之字典的遍历

    博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏. ...

  5. python基础之字典的更新复制

    博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏. ...

  6. python基础之字典的访问

    博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏. ...

  7. Python基础编程——字典

    前面介绍了序列,本节将介绍Python中唯一的内置映射类型-字典(dict),在字典中值不是按照索引来排列的,而是存储在指定的键下面,键可能是字符串.数字.元组等.Python中的字典类似于json格 ...

  8. 【Python基础】字典dict和集合set

    今天看了一些python的字典和集合的文章,发觉底层有些东西自己不是很清楚,关于哈希和内存,网上搜了很多发现都是零星的说明,包括csdn里面都是很多杂乱的记录.通过自己搜集点东西把基础用法和实现原理都 ...

  9. Python基础三--字典,集合,编码,深浅copy,元祖、文件操作

    字典 dict数据类型划分:可变数据类型,不可变数据类型不可变数据类型: 元组,bool值,int,str 可哈希可变数据类型: list,dict,set 不可哈希 dict key :必须是不可变 ...

最新文章

  1. php http面向对象编程实例,PHP面向对象编程——PHP对象引用实例代码
  2. Oracle教程之查询出每个雇员姓名的长度范例
  3. 【错误记录】Windows 系统 bat 脚本报错 ( 使用 pause 拦截窗口自动关闭 | 方便查看错误 )
  4. 在html用div怎样写页脚,使用div+CSS将页脚始终控制在页面最下方的方法
  5. [C++STL]stack容器用法介绍
  6. 队列入队和出队程序演示
  7. 野火IMJAVA开发的即时通讯系统源码
  8. L3_01 01背包和最小序列
  9. linux中的numa和swap
  10. 卷积码(Convolutional Code)
  11. python编程控制安捷伦电源_安捷伦怎么设置电流电压输出 Agilent/HP 6674A DC电源 程控电源租赁 仪器仪表租赁 硬件测试服务...
  12. python调用鼠标驱动_python+selenium 鼠标事件操作方法
  13. IDEA开发项目必备的几个查找功能的使用、查找整个项目文件内容(Find in Path)、查找某个文件名
  14. 新元宇宙奇科幻小说原创作品每周连载地球人奇游天球记第六回冬奥登月
  15. 网页形式的php抓取文件,PHP 抓取网页源文件
  16. Java中一种容易被忽视的访问权限问题
  17. 不服就GAN:GAN网络生成 cifar10 的图片实例(keras 详细实现步骤),GAN 的训练的各种技巧总结,GAN的注意事项和大坑汇总
  18. 同步电路设计中CLOCK SKEW的分析
  19. 手机vnc远程桌面,手机vnc远程桌面教程加配置说明
  20. 向量点乘(内积)和叉乘(外积、向量积)的几何意义和作用

热门文章

  1. 神秘农场新背包java_Mystery Ranch神秘农场2018年户外背包系列产品一览
  2. flask导出html,从Jinja2的模板瓶应用压缩HTML输出(Minify HTML output from Flas
  3. Xpath -- 删除标签
  4. python爬取b站,超水的,不喜勿喷(喷也喷写高情商的)
  5. 单细胞测序分析-T细胞注释
  6. ENVI 4.5 (一)——打开文件
  7. julia调用slurm进行多节点运行
  8. ES6知识点整理Promise的应用
  9. 【离散数学】 SEU - 28 - 2021/06/11 - Lattice and Boolean Algebra
  10. PHP调整图片饱和度,php使用Imagick获取图片主色调