python - 使用 any 进行简单比较的更清洁方法?
问题描述
一些背景
我正在为用户提交的代码设置一些测试,以进行极其简单的数据科学测试。
编码“挑战”在 Jupyter Notepook 中的结构如下:
li1 = [2,4,3,-2,-1,5,10]
li2 = [5,4,-3,7,8,-5,10,9]
def findMedian(li):
li.sort()
# find the median of li...
# your code below
listlength = len(li)
num = listlength//2
if listlength % 2 == 0:
return (li[num]+li[num-1])/2
else:
return li[num]
if findMedian(li1) == 3:
print("1 is correct!")
else:
print("1 is wrong")
if findMedian(li2) == 6:
print("2 is correct!")
else:
print("2 is wrong")
现在虽然这已经足够好了,但我决定我可能应该实现类似以下的东西来真正检查许多情况。
from statistics import median
import random
x = [list(range(random.randint(1,50))) for i in range(1,100)]
print(not any([False if findMedian(i) == median(i) else True for i in x]))
问题是,使用not any()
感觉不对,我已经做了一段时间了,我觉得我的知识有点差距......
问题
有没有更简洁的方式来表达我的比较?
在
not any([False if findMedian(i) == median(i) else True for i in x])
完成这项工作的同时,是否有更有效/pythonic 的方式来表达这一点?
解决方案
推荐阅读
- r - 结合 M/D/Y 和 NBA 比赛时钟数据的累积时间变量
- python - Robot & Requests Python Frameworks ERROR: HTTPError: 401 Client Error: Unauthorized for URL
- java - Passsing List to Controller in Java or Spring?
- c++ - find element in array of strings
- grafana - pfsense grafana Dashboard
- javascript - 计算 collatz 猜想的代码没有输出
- c# - C# 为什么 Shell32.Shell.Windows() 这么慢?
- java - Java - log4 既不打印到控制台也不打印到文件
- mongodb - 使用自定义键使用 MongoDB $arrayToObject
- c# - Excel 文件大小在使用 EPPlus 更新后变得臃肿