如何填补元组列表中的空白

Dj_*_* 96 6 python algorithm indexing tuples

我有一个元组列表,如下所示:

[(1, 'Red'), (2, 'Yellow'), (6, 'Pink'), (7, 'Blue'), (8, 'Green')]
Run Code Online (Sandbox Code Playgroud)

元组中的数字代表索引。但是,由于我的输入文件中缺少一些索引,因此我需要在列表中插入一些元组,并使列表如下所示:

[(1, 'Red'), (2, 'Yellow'), (3, None), (4, None), (5, None), (6, 'Pink'), (7, 'Blue'), (8, 'Green')]
Run Code Online (Sandbox Code Playgroud)

如果你们中的一些人有任何想法,如果您花时间发表评论,我将非常感激。

MAR*_*LLA 1

我在这里提出最简单的实现,但对于大型列表来说效率不高:

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)
Run Code Online (Sandbox Code Playgroud)

这给出:

[(1, 'color: Red'), (2, 'color: Yellow'), (3, 'color: None'), (4, 'color: None'), (5, 'color: None'), (6, 'color: Pink'), (7, 'color: Blue'), (8, 'color: Green')]
Run Code Online (Sandbox Code Playgroud)