码迷,mamicode.com
首页 > 编程语言 > 详细

Python 获取一个字典的子集

时间:2018-03-21 14:09:29      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:压测   性能   

项目背景:前置风控接口,事中风控接口,我们项目的正常流程是,订单信息先通过前置风控接口,只要前置风控接口返回的风险级别是拒绝交易,就不会再调用事中风控接口,前置风控返回的风险级别是非拒绝交易,就继续调用事中风控接口,然后订单信息才会入库,这里有一个问题,事中风控接口的订单信息基本上包含了前置风控的预订单信息,比如:

beforeOrderInfo = {"A":"1",
"C":"3",
"E":"5"}

OrderInfo = {"A":"1",
"B":"2",
"C":"3",
"D":"4",
"E":"5"}

那么如何从事中风控接口的订单信息提取出前置风控所需的订单信息呢,也就是从OrderInfo过滤出beforeOrderInfo 信息,网上有一些比较好的例子可以很好的借鉴,如下:

#encoding=utf-8

print ‘中国‘

#获取一个字典的子集
print ‘---列表推导‘
#不修改原来的字典 列表推导
def sub_dict(somedict,somekeys,default=None):
return dict([(k,somedict.get(k,default)) for k in somekeys])

dict1={1:2,3:4,6:7,9:10}

somekeys=(1,9)

print sub_dict(dict1,somekeys)
print dict1

#修改原来的字典 列表推导
def sub_dict_remove(somedict, somekeys, default=None):
return dict([(k,somedict.pop(k,default)) for k in somekeys])

print sub_dict_remove(dict1,somekeys)
print dict1

print ‘---生成器表达式‘
#不修改原来的字典 生成器表达式
def sub_dict2(somedict,somekeys,default=None):
return dict((k,somedict.get(k,default)) for k in somekeys)

dict1={1:2,3:4,6:7,9:10}

somekeys=(1,9)

print sub_dict2(dict1,somekeys)
print dict1

#修改原来的字典 生成器表达式
def sub_dict_remove2(somedict, somekeys, default=None):
return dict((k,somedict.pop(k,default)) for k in somekeys)

print sub_dict_remove2(dict1,somekeys)
print dict1

Python 获取一个字典的子集

标签:压测   性能   

原文地址:http://blog.51cto.com/11565901/2089323

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!