【发布时间】:2012-07-08 09:54:44
【问题描述】:
我有一个包含布尔值的列表:
my_list = [False, False, False, True, True, True]
我想评估对于具有 (start, end) 索引的给定元组,列表是否包含 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 中做到这一点?
【问题讨论】:
-
你的列表和由 [true] 或 [false] 定义的列表之间的交集怎么办?
-
将列表名称更改为
my_list,因为list隐藏了内置函数 -
我建议您默认使用半开范围。下面的答案使用
[start, end+1]来得到你的答案,但如果你的元组(0,3)意味着包含元素0、1 和2,那么答案会更容易。 Some arguments are here.
标签: python list python-2.7