gpt4 book ai didi

python - 查找并替换列表宽度 Python 中的空行

转载 作者:太空宇宙 更新时间:2023-11-04 08:59:19 28 4
gpt4 key购买 nike

我使用的是 Python 2.7.5,我有一个如下所示的列表:

('2047', '1971', '', '1919', '', '1878', '', '', '1760', '1731', '', '1667', '', '')

列表充满了漏洞,我想识别空行并用下一个非空行的数据填充这些空行。如果没有包含数据的下一行,我想将它们设置为 0。像这样:

('2047', '1971', '1919', '1919', '1878', '1878', '1760', '1760', '1760', '1731', '1667', '1667','0','0')

我如何使用 Python 执行此操作?我可以做一个简单的 for 循环来识别空行,但我不知道如何填充空白...任何帮助将非常感激!谢谢马丁

最佳答案

您可以使用 itertools.groupby为此:

>>> from itertools import groupby
>>> t = ('2047', '1971', '', '1919', '', '1878', '', '', '1760', '1731', '', '1667', '', '')
>>> out = []
>>> prev = None
for k, g in groupby(reversed(t)):
if k == '' and prev is None:
out.extend('0' for _ in g)
elif k == '' and prev is not None:
out.extend(prev for _ in g)
else:
for x in g:
out.append(x)
prev = x
...
>>> out.reverse()
>>> out
['2047', '1971', '1919', '1919', '1878', '1878', '1760', '1760', '1760', '1731', '1667', '1667', '0', '0']

关于python - 查找并替换列表宽度 Python 中的空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27100845/

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