我正在寻找一种检查列表内容是否超过给定数字(第一个阈值)一定次数(第二个阈值)的干净且Python化的方法。如果两个语句都为真,则我想返回超出给定阈值的第一个值的索引。

例:

# Set first and second threshold
thr1 = 4
thr2 = 5

# Example 1: Both thresholds exceeded, looking for index (3)
list1 = [1, 1, 1, 5, 1, 6, 7, 3, 6, 8]

# Example 2: Only threshold 1 is exceeded, no index return needed
list2 = [1, 1, 6, 1, 1, 1, 2, 1, 1, 1]

最佳答案

我不知道滥用布尔值是整数的事实是否被认为是pythonic,但我喜欢这样

def check(l, thr1, thr2):
    c = [n > thr1 for n in l]
    if sum(c) >= thr2:
        return c.index(1)

关于python - 检查列表中的值是否超过阈值一定次数,并返回第一次超过的索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39294564/

10-12 02:58