gpt4 book ai didi

Python-填充列表中的空白

转载 作者:行者123 更新时间:2023-11-28 21:33:20 25 4
gpt4 key购买 nike

我有一个由元组组成的列表,由数据库查询生成,例如:

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

因此,开始时列表的预期输出将是:

列表 = [(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)]

最佳答案

有很多方法,您可以生成这样的新列表:

data = [(0,1,1), (1,2,1), (2,4,3), (4,2,1)]

out = []
for i in range(16):
if data and i == data[0][0]:
out.append(data.pop(0))
else:
out.append((i, 0, 0))

print(out)
# [(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)]

作为旁注,我将您的列表重命名为data,因为最好避免使用内置函数的名称作为变量。

关于Python-填充列表中的空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54724987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com