python - 找出列表中有多少个二进制序列 '1'

标签 python

我想做的是找出从用户输入读取的列表中有多少个“1”序列。例如,如果我的列表如下所示: 我的列表 = [0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1] ,然后我想打印“3”,因为我有 3 个 1 的序列。 到目前为止,我已经尝试找到“0”的索引并查看这些索引是否连续(这意味着我的 2 个零之间是 1 的序列,但没有成功。

最佳答案

您可以在 sum 的生成器表达式中使用 itertools.groupby:

from itertools import groupby
sum(1 for k, _ in groupby(mylist) if k)

返回:3

关于python - 找出列表中有多少个二进制序列 '1',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53509048/

相关文章:

python - 在 python 列表中找到前两个最大值的更多 pythonic 方法

python - bool 和 list 格式字符串的参数不足

python - 全部与全部点积

python - 函数调用中的星号

python - 在Python中: How do I convert a user input into a piece of code?

python - 如何在 Python 中打印我的对象名称

python - 遍历多个文件并计算多个字符串

python - 使用 PIL,如何在使用 .load() 后保存经过处理的图像?

python - 如何使用 Python 精确复制 Windows cmd shell mkdir 的行为?

python - 在 Python 中使用 OBEX 推送发送文件