Dj_ 96:
Tengo una lista de tuplas como la siguiente:
[(1, 'Red'), (2, 'Yellow'), (6, 'Pink'), (7, 'Blue'), (8, 'Green')]
Los números de la tupla representan el índice. Sin embargo, dado que algunos de los índices faltan en mi archivo de entrada, tengo que insertar algunas tuplas en la lista, y hacer que el aspecto lista como la siguiente:
[(1, 'Red'), (2, 'Yellow'), (3, None), (4, None), (5, None), (6, 'Pink'), (7, 'Blue'), (8, 'Green')]
Si algunos de ustedes tienen alguna idea Realmente agradecería si usted toma su tiempo y comentario algo.
MARCO Lagalla:
Propongo aquí la implementación más sencilla, pero no es muy eficiente para grandes listas:
test = [(1, 'color: Red'), (2, 'color: Yellow'), (6, 'color: Pink'), (7, 'color: Blue'), (8, 'color: Green')]
max_index = max(test, key=lambda item:item[0])[0]
missing_values = []
for i in range(1, max_index + 1):
missing = False
for index, val in test:
if i != index:
missing = True
else:
missing = False
break
if missing:
missing_values.append((i,'color: None'))
new_test = test + missing_values
new_test_sorted = sorted(new_test, key=lambda x:x[0])
print(new_test_sorted)
Eso da:
[(1, 'color: Red'), (2, 'color: Yellow'), (3, 'color: None'), (4, 'color: None'), (5, 'color: None'), (6, 'color: Pink'), (7, 'color: Blue'), (8, 'color: Green')]