python - 验证架构并将其应用于 python 中的列表

标签 python list schema

基本上我有一个列表列表,如下所示,它应该遵循类似的模式

[[ID,值1,值2,值3]]

[[105, 'A', 'B'],
[102, 'B', 'C'],
[111, 'A', 'B', 'C'],
[106, 'B'],
[100, 'A', 'C']]

我想要达到这样的结果

[[105, 'A', 'B', 'null'],
[102, 'null','B', 'C'],
[111, 'A', 'B', 'C'],
[106, 'null','B','null'],
[100, 'A','null', 'C']]

这就像我有一个列表必须遵循的模式,如果特定值不可用,则应将其替换为 null。我可以使用条件语句编写代码,但它不是可扩展的选项。我正在尝试处理一些包,例如 schema 0.5.0 和 marshmallow,它们仅用于验证特定列表或字典是否可以遵循模式(T/F)。但如果找不到值,我会尝试替换它们。

最佳答案

尝试以下操作。本质上将每个列表映射到具有值或 None 的新列表。

alist = [[105, 'A', 'B'],
         [102, 'B', 'C'],
         [111, 'A', 'B', 'C'],
         [106, 'B'],
         [100, 'A', 'C']]

alist = map(lambda x: [x[0] ,
                  "A" if "A" in x else "None",
                  "B" if "B" in x else "None",
                  "C" if "C" in x else "None"], alist)

或者:您可以只拥有列表应具有的值列表,然后映射该列表。

values =   ["A","B", "C", "D"]
alist = list(map(lambda x: [x[0]] + #ID 
                            list(map(lambda y: y if y in x else "None", values)), alist))

关于python - 验证架构并将其应用于 python 中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37081452/

相关文章:

python - 如何在 Pandas 数据框行中找到最后一个集群?

python - 如何在Google Colab中获得分配的GPU规范

python - 从字典列表中获取特定值的列表,而无需使用 for 循环或仅在必要时使用 if 条件

python - 计算 GCD - 如何检查列表中的每个元素

python - 如何从 Python 的字典列表中删除基于选定键的重复字典?

mongodb - Mongoose:如何引用单独文件中的嵌套架构?

PHP/MySQL 登录 -> 每个客户的模式

Python Selenium 无法打开文件以标记为存储保留

php - 这是好的成员(member)支付数据库模式吗?

python - 启动 Tensorflow : Cannot import name PROJECTOR_FILENAME