私はよく次の問題に似た問題に遭遇し、それを解決するためのきれいなコードを書くのに苦労しました。通常、一時変数と for ループを含むものがありますが、もっと洗練された方法はありますか?
ブール値またはブール値に評価される値のリストがあるとします。
[True, False, True, False, False, True]
これを、前の True のインデックスを含む値のリストにどのようにマップしますか?
[0, 0, 2, 2, 2, 5]
[編集] 次の行に沿って何かを試しました:
def example(lst):
rst, tmp = [], None
for i in range(len(lst)):
if lst[i]:
tmp = i
rst.append(tmp)
return rst
リストの最初の要素が常に True であると仮定します。