[英]How does one calculate the number of multiples in a set or list using Python?
[英]Find even multiples of a number in a list using Python
我正在尋找最有效的方法來檢查列表中的一個或多個元素是否是具有預定義公差的預定義數字的倍數。 下面是一個示例:
myNumber=3.5
myList=[0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8,8.5,9,9.5]
myTolerance=0.5
myResult=[0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0]
任何建議都非常感謝。
怎么樣
from numpy import mod, floor
withinTolAbove=[int(mod(number, myNumber) <= myTolerance and
mod(floor(number / myNumber), 2) == 0) for number in myList]
withinTolBelow=[int(mod(number + myTolerance, myNumber) <= myTolerance and
mod(floor((number + myTolerance) / myNumber), 2) == 0) for number in myList]
myResult=[max(i1, i2) * int(number > myTolerance) for i1, i2, number in zip(withinTolAbove, withinTolBelow, myList)]
第一部分確定除法是否在整數的公差范圍內,第二部分確定該整數是否可被2整除。
怎么樣
print print([int(abs(x - round(x / myNumber) * myNumber) <= myTolerance and round(x / myNumber) > 1.5) for x in myList])
輸出:
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.