Python-连续布尔范围
给定一个值列表,我们很想知道布尔值作为连续列表出现在哪个位置。这意味着在我们遇到一个为TRUE的值之后,从该位置开始一直存在一个true连续值,直到找到FALSE值为止。类似地,当找到FALSE时,存在连续的FALSE值,直到找到TRUE。
使用itertools
W可以与itbytools模块中的groupby一起使用累加。在此示例中,我们获取给定列表,然后应用累加函数来跟踪使用sum函数汇总在一起的值。列表中的最后一个值是给定列表结束的最后位置。
示例
from itertools import accumulate, groupby
# Given list
listA = [False, True,True,False,False]
print("Given list : \n",listA)
# Applying accumulate
res = [0] + list(accumulate(sum(1 for x in y)
for x, y in groupby(listA)))
# Result
print("Positions for Range of contigous values:\n ",res)输出结果
运行上面的代码给我们以下结果-
Given list : [False, True, True, False, False] Positions for Range of contigous values: [0, 1, 3, 5]
使用枚举
枚举功能与zip功能一起用于通过将每个元素与下一个元素进行比较来列出位置。如果它们不相等,则将新的位置值视为连续范围的起始点。
示例
# Given list
listA = [False, True,True,False,False]
print("Given list : \n",listA)
# Applying enumerate
res = [e for e, (x, y) in
enumerate(zip([2]+ listA, listA + [2])) if x != y]
# Result
print("Positions for Range of contigous values:\n ",res)输出结果
运行上面的代码给我们以下结果-
Given list : [False, True, True, False, False] Positions for Range of contigous values: [0, 1, 3, 5]
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短