DJ_ 96:
Ich habe eine Liste von Tupeln wie folgt aus:
[(1, 'Red'), (2, 'Yellow'), (6, 'Pink'), (7, 'Blue'), (8, 'Green')]
Die Zahlen in der Tupel stellen den Index. Da jedoch einige der Indizes in meine Eingabedatei fehlt, muss ich einige Tupel in der Liste einzufügen, und stellen Sie die Liste wie folgt aussehen:
[(1, 'Red'), (2, 'Yellow'), (3, None), (4, None), (5, None), (6, 'Pink'), (7, 'Blue'), (8, 'Green')]
Wenn einige von euch irgendwelche Ideen würde ich wirklich schätzen, wenn Sie Ihre Zeit und kommentieren etwas nehmen.
MARCO Lagalla:
Ich schlage vor, hier die einfachste Implementierung, aber nicht sehr effizient für große Listen:
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)
Das gibt:
[(1, 'color: Red'), (2, 'color: Yellow'), (3, 'color: None'), (4, 'color: None'), (5, 'color: None'), (6, 'color: Pink'), (7, 'color: Blue'), (8, 'color: Green')]