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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   昨天下午三点,我被中子星的hr约谈,到中子星金融进行面试。恰巧,老王也要出去面试,我俩就一起从地铁8号线转到1...
    lin_zone___三月阅读 212评论 4 0
  • 图多,慎入。 断断续续听了几回朋友谈论武夷,说是“武夷占尽人间美”,于是一睹武夷风采的想法在心里生了根,想去看看何...
    姑娘玉秋阅读 369评论 1 3
  • 【阅读】第3章 心理表征 P105~112今天看到这一小节,讲的是心理表征有助于高效学习。用麦克赫森和伦威克对一群...
    炎山fire阅读 286评论 0 0
  • 文/白鹭 奥斯特洛夫斯基《钢铁是怎样炼成的》说过:生活就是这样变幻莫测,一会儿满头大雾,转眼间又出现了灿烂的太阳。...
    白鹭姑娘阅读 2,501评论 40 45
  • 1 前天晚上,誊完《傅雷家书》那篇书评已经很晚了,喝了点花茶,睡不着就在那儿刷刷微博,无意间跳出来一个视频,内容大...
    咖啡豆time阅读 273评论 1 3