Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python - evaluate elements of a list subset

I have a list containing booleans:

my_list = [False, False, False, True, True, True]

I want to evaluate if for a given tuple with (start, end) indexes the list contains a True value, e.g.

contains_true(my_list, (0,0)) => False
contains_true(my_list, (0,2)) => False
contains_true(my_list, (0,3)) => True
contains_true(my_list, (3,5)) => True
contains_true(my_list, (5,5)) => True

Currently I'm doing this:

def contains_true(my_list, indexes_tuple):
    start = indexes_tuple[0]
    end = indexes_tuple[1] + 1
    indexes = range(start, end)

    for i in indexes:
        if my_list[i]:
            return True
    return False

Is there a better way to do this in Python?

like image 571
armandino Avatar asked Mar 06 '26 08:03

armandino


1 Answers

>>> my_list = [False, False, False, True, True, True]
>>> def contains_true(seq, bounds):
        start, end = bounds
        return any(seq[start:end+1])

>>> contains_true(my_list, (0,0))
False
>>> contains_true(my_list, (0,2))
False
>>> contains_true(my_list, (0,3))
True
>>> contains_true(my_list, (3,5))
True
>>> contains_true(my_list, (5,5))
True
like image 165
jamylak Avatar answered Mar 07 '26 21:03

jamylak



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!