我试图将列表项与前面的项合并,如果它们不包含特定的前缀,则在这样做时在这些列表项之间添加一个\n
。
prefix = '!'
cmds = ['!test','hello','world','!echo','!embed','oh god']
output = ['!test\nhello\nworld','!echo','!embed\noh god']
我尝试了类似以下的操作
for i in list(range(0,len(cmds))):
if not cmds[i+1].startswith(prefix):
cmds[i] += cmds.pop(i+1)
但总是遇到list index out of range
错误。
如果我的表述不太清楚或者看起来像是一个明显的修复方法,请原谅,我对Python/编程还比较新。
编辑:
我已经成功让它工作了。
prefix = '!'
cmds = ['!test','hello','world','!echo','!embed','oh god']
print(list(range(0,len(cmds))))
for i in reversed(range(len(cmds))):
if not cmds[i].startswith(prefix):
cmds[i-1] += '\n'+cmds.pop(i)
print(cmds)
但是你的答案看起来更加整洁高效,非常感谢大家。