2

ブール値を含むリストがあります:

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

True(開始、終了)インデックスを持つ特定のタプルについて、リストに値が含まれているかどうかを評価したい。

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

現在、私はこれをやっています:

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

Pythonでこれを行うより良い方法はありますか?

4

5 に答える 5

2

パイソン 2:

contains_true = lambda L, (start, end): any(L[start:end+1])

または Python 2 & 3 では:

contains_true = lambda L, start_end: any(L[start_end[0]:start_end[1]+1])
于 2012-07-08T10:16:10.823 に答える
0

リストはnumpy配列でなければならないので、次のようにします。

import numpy as np

次に、関数は次のようになります。

def contains_true(list,tupel):
    if l[tupel[0]:tupel[1]].any()==True: 
        return True
    else: 
        return False
于 2012-07-08T10:07:36.273 に答える