У меня есть список, состоящий из 0 и 1. Список должен в идеале выглядеть следующим образом: 0,1,0,1,0,1,0,1,0,1,0,1,0,1 .....Заполните пропущенные значения в списках
Но из-за некоторой ошибки при регистрации , мой список выглядит так: 0,1,0,1,1,1,0,1,0,0,0,1,0,1 .... Как видно, есть некоторые пропущенные 0 и 1 в средний. Как я могу исправить этот список, чтобы добавить эти 0 и 1 между отсутствующими элементами, чтобы получить желаемые значения списка.
Вот код, используемый мной, эта задача для меня, но это не самый пифонический способ написания сценариев. Итак, как я могу улучшить этот скрипт?
l1 = [0,1,0,1,1,1,0,1,0,0,0,1,0,1]
indices = []
for i in range(1,len(l1)):
if l1[i]!=l1[i-1]:
continue
else:
if l1[i]==0:
val=1
else:
val=0
l1.insert(i, val)
EDIT
Как спросили в комментариях, Позвольте мне объяснить, почему это важно, а не генерируя 1 и 0. У меня есть импульс TTL, то есть серия HIGH (1) и LOW (0), входящая и одновременно время для каждого из этих импульсов TTL регистрируется на двух машинах с разными часами.
Теперь, когда машина I чрезвычайно стабильна и регистрирует каждую последовательность HIGH (1) и низкой (1) точно, другая машина не хватает пары из них, и в результате у меня нет информации о времени для этих ,
Все, что я хотел, это объединить недостающий импульс TTL на одной машине на другую машину. Теперь это позволит мне выровнять время на обоих из них или log Нет для не полученных импульсов.
Причина для этого, а не для исправления ведения журнала (как указано в комментариях) заключается в том, что это старые собранные данные. Теперь мы исправили проблему ведения журнала.
Любопытно, почему один будет беспокоить фиксации списка 0 и 1, когда вы можете легко создать этот список на любой длине , – odin
Я голосую за то, что вы пытаетесь установить регистрацию, а не на неправильный вывод. – synchronizer
Вы упомянули, что список ** идеально ** выглядит ** 0, 1, 0, 1 ** и не всегда. Таким образом, нет никакой гарантии, что это будет ** 0, 1, 0, 1 **. В этом случае, как бокс список решить вашу проблему? –