Как вставить пустую строку в список, если между совпадениями нет 3 строк.
Я хочу выяснить, является ли каждый 4-й элемент каким-либо числом (т. Е. 12.1234., 1.12.13 и т. Д.), И если нет, я хочу вставить пустую строку перед вторым числом, чтобы между каждым соответствием всегда было 3 строки.
list = ['1.1', 'ab','ac','','1.2','dd','','1.3','cb','dd','', '1.4', 'de','']
wanted_list =['1.1', 'ab','ac','','1.2','dd','','', '1.3','cb','dd','', '1.4', 'de','','']
Это то, что я получил до сих пор, но цикл никогда не заканчивается и вставляет путь ко многим пустым строкам в конце (не только когда между совпадениями нет 3 строк).
list = ['1.1', 'ab','ac','','1.2','dd','','1.3','cb','dd','', '1.4', 'de','']
start_rx = re.compile('|'.join(
['\d\d\.\d\d\.\d\d\.\d\d\d', '\d\d\.\d\d\.\d\d\.', '\d\d\.\d\d\d\d', '\d\.\d\.\d\.', '\d\.\d\.\d\.\d\d\.',
'\d\.\d\.\d\.\d\d\d\.', 'A\d\d\d\d', '^\d\.', '^\d\.\d', '^\d\.\d\.\d', '^\d\.\d\.\d\d', '\d\d\.\d\d\.\d\d\d\d', '\d.\d']))
count = 1
for i, line in enumerate(list):
count += 4
if re.match(start_rx, line):
pass
else:
i=count
list.insert(i, '')
print (list)