python - Python 检查两个列表
问题描述
我对 python 比较陌生,遇到了以下问题:
给定两个列表 a 和 b 以及一个整数 n,检查
a) a 的所有元素是否是 n 的因数
b) n 是 b 的所有元素的因数
我的代码似乎不正确。有人可以在这里指出错误。
return n if n%x==0 for x in a and y%n==0 for y in b
任何帮助表示赞赏
解决方案
明显的一个(你错过了all(...)
):
all(n % x == 0 for x in a) and all(y % n == 0 for y in b)
好玩一:
0 == n % reduce(lcm, a) == reduce(gcd, b) % n
不过需要 Python 3.9。
测试代码:
from itertools import product
from math import gcd, lcm
from functools import reduce
R = range(1, 11)
true = false = 0
for n in R:
for a in product(R, repeat=3):
for b in product(R, repeat=3):
expect = all(n % x == 0 for x in a) and all(y % n == 0 for y in b)
result = 0 == n % reduce(lcm, a) == reduce(gcd, b) % n
assert result == expect
true += expect
false += not expect
print(true, false)
=> 没有失败,相同的 2,723 个正确结果和 9,997,277 个错误结果。
推荐阅读
- node.js - 错误“user.findOneAndUpdate 不是函数”但数据已更新
- javascript - 如何使用 lightstep/otel-launcher-node 作为 OpenTelemetry 导出器?
- zsh - 查找与 zsh 关联数组中的值匹配的键?
- mongodb - azure cosmos db 在 mongodb.com 中创建了集合
- asp.net-core - 如何将 AzureAD 配置添加到 AspNetCore 应用程序
- excel - 通过 Excel VBA 将 Xlookup 添加到范围
- c# - c# Console App Giving Error: Index was outside the bounds of the array - 在成功发布后单击 Setup.exe 时
- php - 服务器升级后PHPExcel出错?
- php - 如何使存储在数据库中的自定义字段文本成为wordpress前端的链接
- python - 使用 OpenCV Python 使用模糊水平集进行视网膜流体分割