首页 > 解决方案 > 检查一个列表的每个元素是否是另一个列表的所有元素的倍数

问题描述

我有两个清单;S 和 T。我想检查 T 的每个元素是否是 S 的所有元素的倍数。如果条件对 S 的所有元素都为真,则将 T 的该元素附加到新列表 V。

输入

S = [2, 4]
T = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]

预期产出

V = [4, 8, 12, 16]

我在下面尝试了这段代码,但输出错误;

V = [i for i in T for j in S if i % j == 0]
print(V)

当前错误输出

V = [4, 4, 6, 8, 8, 10, 12, 12, 14, 16, 16]

标签: pythonpython-3.xlistlist-comprehension

解决方案


用于all()检查所有条件是否为真:

S = [2, 4]
T = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]

V = [i for i in T if all(i % j == 0 for j in S)]
print(V)

推荐阅读