Python 获取一个字典的子集

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

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

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

时间: 2024-08-02 18:01:15

Python 获取一个字典的子集的相关文章

python生成一个字典的嵌套

最近写脚本用到python,在网上看到了很多关于如何解析多层嵌套的,但是如何生成一个嵌套的map还是需要看一些python的语法. 目的:生成{1: {'errors': {0: 'd:\helloworld', 1: 'd:\dict'}, 'os': 'windows', 'type': 2}}这样的多层嵌套的数据. d1={} d1.setdefault(1,{})[errors]={} 用同样的方式设置下一侧的嵌套 temp = d1[1] temp.setdefault('errors

python 实现求一个集合的子集

概要 今天偶然看到有个关于数学中集合的问题,就突发奇想的想用python实现下求一个集合的子集. 准备 我当然先要复习下,什么是集合,什么是子集? 比较粗犷的讲法,集合就是一堆确定的东西,细致一点的讲法呢,就是由一个或多个确定的元素所构成的整体,集合中的东西称为元素. 集合有一些特性: 1.确定性 给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,二者必居其一,不允许有模棱两可的情况出现. 2.互异性 一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次.有时需要对同一元素

【Python&知识点】2个列表合成一个字典

·放一些网上的链接:https://baijiahao.baidu.com/s?id=1617397248551208688&wfr=spider&for=pc python,2列表组合成一个字典list_1 = [1,2,3,4,5,6] list_2 = ['a','b','c','d','e','f'] 方法一:dict(map(lambda x,y:[x,y],list_1,list_2)) 方法二:dict(zip(list_1,list_2)) 最简便!!! 输出:{1: 'a

Python把两个列表合成一个字典

简单粗暴上代码 A= [] B = [] C= dict(map(lambda x,y:[x,y],A,B)) 酱紫,就合成了一个字典 原文地址:https://www.cnblogs.com/yqpy/p/8626426.html

python基础之字典及字符

python基础之字典及字符串处理 本节内容 字典介绍及内置方法 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的.可哈希表示key必须是不可变类型,如:数字.字符串.元组. 字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者

使用 Python 获取 Linux 系统信息

探索platform模块 platform模块在标准库中,它有很多运行我们获得众多系统信息的函数.让我们运行Python解释器来探索它们中的一些函数,那就从platform.uname()函数开始吧: >>> import platform>>> platform.uname()('Linux', 'fedora.echorand', '3.7.4-204.fc18.x86_64', '#1 SMP Wed Jan 23 16:44:29 UTC 2013', 'x86

Python学习(十一) Python数据类型:字典(重要)

字典dict: 字典其实就相当于java里面的Map,用来存储键值对的.其中存储的数据时无序的. 假如有这样的数据: t1=['name','age','sex'] t2=['tom',30,'male'] 通过zip(t1,t2)可以获取到这样的数据[('name','tom'),('age',30),('sex','male')] 字典定义是通过 {}进行的. 字典是Python当中唯一的映射类型(哈希表),字段对象时可变的,但是字典对象的键必须是不可变的,并且一个字典中可以包含不通类型的键

Python基础系列----字典、基本语句

1.定义                                                                                               映射:通过名字来引用的数据结构.与前面说的数据结构不同,一个是通过下标的数字,一个是通过名称. 字典是python中唯一内建的映射类型.字典中的值并没有特殊的顺序,但都是存储在一个特定的键下.键可以是数字.字符甚至是元组. 字典由多个键及其对应的值构成的键-值对组成. 1 phonebook={'To

Python对象类型——字典和集合

字典 1.字典本身是哈希的,是无序的,但字典中的键的集合或值的集合可以是有序的,通过keys()或values()返回一个列表,该列表是可排序的.注:哈希表的算法是获取键,对键执行一个叫做哈希函数的操作,并根据计算的结果,选择在数据结构的某个地址中来存储你的值. 2.字典的创建可以直接赋值:可以通过工厂函数dict()生成,如果参数是可迭代的,即一个序列或是一个迭代器,或是支持迭代的对象,则没个可迭代的元素必须成对出现,eg:dict([['x',1],['y',2]]):还可以用内建方法fro