У меня есть следующий список, содержащий кортежи:
ov=[(0,), (1,), (0,), (0,), (0,), (0,), (1,), (1,), (1,), (1,), (1,), (0,), (1,), (1,), (1,), (0,), (1,), (1,), (1,), (1,), (1,), (None,)]
Теперь я хочу, чтобы все значения 1
и предыдущее значение 0
сохранялись в отдельном списке.
Последнее значение, которое сохраняется каждый раз, должно быть 0
или, если есть значение None
, оно не должно сохраняться.
Поэтому я хотел бы получить результат, который будет:
result =[1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1]
Я уже получил следующую функцию:
def previous_and_next(something):
prevs, items, nexts = tee(something, 3)
prevs = chain(["NONE"], prevs)
nexts = chain(islice(nexts, 1, None), ["NONE"])
return zip(prevs, items, nexts)
И следующее для цикла:
for previous, item, nxt in previous_and_next(ov):
if item[0]==1 and previous[0]==0 and nxt[0]==1:
print("This is the start value of my wanted values")
print(previous)
print(item)
print(nxt)
с выводом:
This is the start value of my wanted values
(0,)
(1,)
(1,)
This is the start value of my wanted values
(0,)
(1,)
(1,)
This is the start value of my wanted values
(0,)
(1,)
(1,)
Может кто-нибудь помочь мне преобразоватьэтот цикл, чтобы он возвращал желаемый результат?