python - 检查一个列表的每个元素是否是另一个列表的所有元素的倍数
问题描述
我有两个清单;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]
解决方案
用于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)
推荐阅读
- diagram - GOJS 第二个图表的缩放问题
- django - ImproperlyConfigured:请求设置 INSTALLED_APPS,但未配置设置
- json - 如何使用卷来持久化我的 mongodata?
- c# - 在 azure protal 中连接两个应用服务和简易表格
- python - 如何整齐地打印字典?
- sql - 如果路径键在变量 postgresql 中,如何更新 jsonb 值
- data-analysis - 在新闻文章中分析和挖掘什么?
- java - 如何在系统启动或休眠和睡眠时创建 bat 文件
- javascript - 如何让 ESLint 包含本地文件?
- c# - 在枪之间切换