python字典的合并排序添加查询
时间:2022-07-22
本文章向大家介绍python字典的合并排序添加查询,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
python 中映射类型里key和value是一种一对多的关系,通常被认为是一种可变的哈希表。字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,也可存储其他容器类型。
字典的合并
如何实现字典间的合并呢?
y.update(x)
x = {'a':1,'b':7,'c':9}
y = {'a':8,'c':11}
y.update(x)
print(x)
{'a': 1, 'b': 7, 'c': 9}
x.update(y)
print(x)
{'a': 8, 'b': 7, 'c': 11}
update的这个方法可以看出它会把后面的字典用来覆盖住前面的字典,然后进行合并 同时不会赋值给第三方的字典。
怎么样才能最终让值保存在第三方呢?
z = dict(x.items() + y.items())
x = {'a':1, 'b': 2}
y = {'b':10, 'c': 11}
z = dict(list(y.items()) +list(x.items()))
print(z)
{'b': 2, 'c': 11, 'a': 1}
z = dict(list(x.items()) +list(y.items()))
print(z)
{'a': 1, 'b': 10, 'c': 11}
注意这里在python3中必须使用z = dict(list(y.items()) +list(x.items()))来进行字典的合并,同时可以看出自典的顺序不同合并的结果也不相同。
dict(d1, **d2)
x = {'a':1, 'b': 2}
y = {'b':10, 'c': 11}
z = dict(x,**y)
print(z)
{'a': 1, 'b': 10, 'c': 11}
这个和上一种方法很雷同
字典的排序
首先,对字典进行排序是不可能的,只有把字典转换成另一种方式才能排序。 可以转化为元组列表进行排序
按value进行排序
import operator
x = {1: 2, 3: 4, 4:3, 2:1, 0:0}
sorted_x = sorted(x.items(), key=operator.itemgetter(1))
print(sorted_x)
按key进行排序
import operator
x = {1: 2, 3: 4, 4:3, 2:1, 0:0}
sorted_x = sorted(x.items(), key=operator.itemgetter(0))
print(sorted_x)
逆序
sorted(d.items(),key = lambda x:x[1],reverse = True)
向字典添加元素
d = {'key':'value'}
d['mynewkey'] = 'mynewvalue'
print d
{'mynewkey': 'mynewvalue', 'key': 'value'}
当然也可以使用update
>>> x = {1:2}
>>> print x
{1: 2}
>>> x.update({3:4})
>>> print x
{1: 2, 3: 4}
检查一个键在字典中是否存在
if 'key1' in dict.keys():
print "blah"
else:
print "boo"
d = dict()
for i in xrange(100):
key = i % 10
d[key] = d.get(key, 0) + 1
如果get没有默认可以填写为0
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Flutter开发笔记——BottomNavigationBar设置未选择Item颜色
- 访问虚拟机局域网服务拒绝连接
- uninstalling vim-minimal 同时也卸载了 sudo 解决方法
- 大点干!早点散----------深入剖析缓存加速--squid(反向代理与ACL访问控制以及sarg日志)
- JVM的Xms和Xmx参数设置为相同值有什么好处?
- 【CVPR 2020】一种新的门控通道注意力转换单元
- 5个好用的 CSS 函数
- java1.8中Object类源码分析
- 多线程基础(六):Object的wait方法以及notify与notifyAll的区别
- Day15:反转链表
- Day16:合并两个排序的链表
- 大厂面试爱问的「调度算法」,20 张图一举拿下
- Day17:树的子结构
- 多线程基础(七):关于HotSpot中notify方法不具备随机性的证明
- Day18:二叉树的镜像