python - 比较列表元素与多个列表元素

标签 python list compare

我有两个列表:

targets = [ [ [4.88], [2.76], [0.4] ], [ [2.6], [2.12], [7.4], [0.2] ] ]
multiples = [ [ [4.2, 3.6, 6.3], [3.5, 2.5], [7.3, 0.5] ], [ [3.6, 0.3], [5.2, 8.6, 3.7], [3.6, 0.4], [2.3, 6.4] ] ]

对于第一个列表中的每个条目,第二个列表中有多个条目。现在我想比较这些数字并计算低于目标数字的数字的准确度。我尝试了以下方法,但我不知道如何将一个值与多个值进行比较以及如何同时引用它们。

for element in targets:
    tmp = []
    for item in element:
        tmp2 = []
        if item > multiples

输出应该是这样的:

[ [ [2], [1], [0] ], [ [1], [0], [2], [0] ] ]

有人知道解决方案吗?

最佳答案

一个使用zip()sum() 的解决方案:

targets = [ [ [4.88], [2.76], [0.4] ], [ [2.6], [2.12], [7.4], [0.2] ] ]
multiples = [ [ [4.2, 3.6, 6.3], [3.5, 2.5], [7.3, 0.5] ], [ [3.6, 0.3], [5.2, 8.6, 3.7], [3.6, 0.4], [2.3, 6.4] ] ]

out = []
for val1, val2 in zip(targets, multiples):
    out.append([[sum(i < j for i in vval2) for j in vval1] for (vval1, vval2) in zip(val1, val2)])

print(out)

打印:

[[[2], [1], [0]], [[1], [0], [2], [0]]]

关于python - 比较列表元素与多个列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57525064/

相关文章:

python - 在 'from_delayed' JSON 文件中发现 DASK 元数据不匹配

python - 按两个元素对嵌套列表进行排序

list - 如果未为此 S4 类定义 $ 运算符,如何从 glmerMod 对象中提取模型组件

list - 如何比较 Lisp 中的两个列表

java - 比较并检索 ArrayList 中的元素

javascript - "The owner of this website has banned your access based on your browser' s signature"...在 python 程序中的 url 请求

python - 发布 JSON 和 python Flask - 使用 Werkzeug 调试器的任何技术?

java - 通用列表打印方法

java - 比较Java中的两个日期

c++ - 有 gtest 比较二进制的东西吗?