You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python程序append后出现多余空字符串的问题求解

解决列表末尾多出空字符串的问题

这个问题其实是因为你的代码逻辑顺序搞反啦😉——现在的流程是不管输入啥,先处理再加入列表,之后才判断是否要终止循环。当你输入空字符串时,它会先把处理后的空字符串添加到列表里,然后才触发break,所以最后就多了个空元素。

最优雅的修复方案

调整逻辑顺序,先判断输入是否为空,为空直接终止循环;非空的情况下再处理并添加到列表:

import re
filenames = []
while True:
    filename_input = input("Filename? ")
    # 先检查是否为空输入,是的话直接退出循环
    if filename_input == "":
        break
    # 非空输入才执行处理和添加操作
    pattern = r'\[.*?\]'
    re_filename = re.sub(pattern, "", filename_input)
    filenames.append(re_filename)
print(filenames)

另一种可选方案(不推荐)

如果不想调整顺序,也可以在循环结束后移除最后一个空元素,但这种写法不如上面的优雅,而且如果用户不小心连续输入两次空字符串可能会出问题:

import re
filenames = []
while True:
    filename_input = input("Filename? ")
    pattern = r'\[.*?\]'
    re_filename = re.sub(pattern,"",filename_input)
    filenames.append(re_filename)
    if filename_input == "":
        break
# 移除最后一个空元素
filenames.pop()
print(filenames)

推荐用第一种方案,因为它从根源上避免了空元素被加入列表,逻辑更清晰。

内容的提问来源于stack exchange,提问作者RubikSquare

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 17:22:32