我有一個由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,以便獲得所需的列表值。
這是我使用的代碼,這對我來說是任務,但它不是編寫腳本的最pythonic方式。那麼我該如何改進這個腳本呢?
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)
編輯
由於要求在評論,讓我解釋一下爲什麼這是重要的,而不是生成1和0。我有TTL脈衝到來,即進入一系列HIGH(1)和LOW(0),同時這兩個TTL脈衝的時間在具有不同時鐘的2臺機器上記錄。
現在,雖然機器I非常穩定,並且準確地記錄了高(1)和低(1)的每個序列,但其他機器最終錯過了其中的幾個,因此我沒有這些時間信息。
我只想將一臺機器上缺少的TTL脈衝合併到另一臺機器上。現在這將允許我對它們進行時間調整,或者對於沒有收到的脈衝記錄無。
做這件事的原因,而不是糾正記錄的事情(如評論中所述)是這是一箇舊的收集數據。我們現在已經修復了日誌記錄問題。
好奇,爲什麼人會打擾固定的0和1組成的名單時,你可以很容易地生成任意長度此列表。 – odin
我投票,你嘗試修復日誌記錄,而不是錯誤的輸出。 – synchronizer
您提到該列表**理想**看起來** 0,1,0,1 **,並不總是。所以不能保證它會是** 0,1,0,1 **。在這種情況下,如何裝箱清單解決您的問題? –