新生活を充実させるための「こだわり」を取材!!

Pythonのプログラムについて教えてください。
a = [0,1,1,1,0,0,0,0,1,1,0,1,1,1,1,1,0,1,0]
例えば上記のようなリストがあった際に、1の連続量を導出したいです。
上記の場合は、3、2、5、1という結果を導出したいです。
なにか良い方法はございませんでしょうか?

教えて!goo グレード

A 回答 (2件)

このサイトにアップするとインデントが崩れるので、下記にアップしました。

連続する回数をリストにして返すメソッドを作成しました。
https://ideone.com/mzCrUK

実行結果
1の連続する回数
[3, 2, 5, 1]
0の連続する回数
[1, 4, 1, 1, 1]
    • good
    • 0

from itertools import groupby


a = [0,1,1,1,0,0,0,0,1,1,0,1,1,1,1,1,0,1,0]
[i[0] for i in [(len(list(g)), k) for k, g in groupby("".join(map(str, a)))] if i[1] == '1']
    • good
    • 3

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング