python - Python lambda 函数,遍历一个元组和一个列表
问题描述
假设您有一个包含属性的类表:记录(字典列表)和作为每个表的主键的键(就像 SQL 一样) - 元组
我需要编写一个 lambda 函数,该函数采用新行,然后如果新行中键的所有值都已经在表中,则吐出 True 或 False
例如:
# Table: orders
keys = ('product_id', 'customer_id')
records: [{'product_id': 51, 'customer_id' : 10, 'units':9},
{'product_id': 32, 'customer_id' : 11, 'units':33},
{'product_id': 39, 'customer_id' : 47, 'units':2}]
现在我们要检查的新行是:
{'product_id': 51, 'customer_id' : 10, 'units': 77 }
这将返回True
,因为product_id==51
并且customer_id==10
就像记录中的第一个字典一样(单位无关紧要,因为它不是键)。
然而这:
{'product_id': 51, 'customer_id' : 11, 'units':9}
将返回False
,因为没有带有product_id==51
and的行customer_id==11
我们必须使用 lambda 函数(我们不必使用过滤器,只是一个提示)
我尝试了许多不同的“攻击”这个问题的方法,但我无法遍历键列表和元组同时...
contains_key = lambda self, new_row: list(filter(
(lambda con: con[self.__key]),
[record for record in self.__records]
))
解释:self 是我们操作的表,new_row 是要检查的行(字典)
self.__keys 是键的元组(就像 sql 中的主键),self.__records 是字典的列表="""rows in an sql table""")
该函数位于类 Table 中(这就是它采用“self”形式的原因)
class Table:
def __init__(self, key_set):
self.__key = tuple(key_set)
self.__records = []
def add_record(self, new_record):
self.__records.append(new_record)
解决方案
推荐阅读
- operating-system - 64 位处理器对虚拟内存的需求
- reactjs - 单击按钮时添加 div 标签
- python - 从 .bson 文件为 python 恢复数据库
- java - 尝试在 Spring Boot 中从 null 一对一属性分配 id
- json - 如何使用 Jersey 将多部分数据(JSON + 八位字节流)从服务器发送到客户端?
- angular - 使用 angular ngrx 和 firestore,set() 方法返回 undefined
- java - 运行 HelloWorld.java 时找不到 java.exe
- libgdx - Libgdx 表布局逻辑表未正确定位
- c++ - 无法使用 c++11 编译简单的 Rcpp 函数
- python-3.x - 为什么我在这个问题中遇到运行时错误?