У меня есть список из кортежей, сгенерированный из запроса к базе данных, например:
list = [(0,1,1), (1,2,1), (2,4,3), (4,2,1)]
Первое число в каждом кортеже должно быть последовательным числом от 0 до 15. Также может бытьпропущенные, и я ищу лучший способ заполнить пробелы.
В настоящее время я делаю это с помощью циклического прохождения, но, будучи нубом Python, я считаю, что он небрежный, и есть лучшие способы:
# first fill in gaps
cnt = 0
for a,b,c in list:
if a > cnt:
list.insert(cnt, tuple((cnt, 0, 0)))
cnt += 1
# then add any missing at end
while cnt < 16:
list.append(tuple((cnt, 0, 0)))
cnt += 1
Итак, ожидаемый результат для списка в начале будет:
list = [(0,1,1), (1,2,1), (2,4,3), (3,0,0), (4,2,1), (5,0,0), (6,0,0), (7,0,0), (8,0,0), (9,0,0), (10,0,0), (11,0,0), (12,0,0), (13,0,0), (14,0,0), (15,0,0)]