在 python 中从字符串中删除一行的最有效方法是什么?我试过了
content = "first line \nsecond line\nthird line\netc.".splitlines()
i = 0
for line in iter(content):
if len(line) < 5:
content[i] = ""
i += 1
content = '\n'.join(content)
我的删除条件就是一行长度小于5个字符。有没有更优雅/更高效的方式?
最佳答案
这是一个使用列表理解的更简洁的方法:
'\n'.join([i if len(i) > 5 else '' for i in content.split('\n')])
#'first line \nsecond line\nthird line\n'
现在使用您的方法...请注意,content 已经是一个迭代器,因此不需要 iter(content)
。
还有什么可以改进的?好吧,不是使用计数器,python 有一个内置函数,enumerate
.使用它,您的代码可能如下所示:
content = "first line \nsecond line\nthird line\netc."
content = content.splitlines()
for i, line in enumerate(content):
if len(line) < 5:
content[i] = ""
separator = '\n'
content = separator.join(content)
关于python - 删除字符串python中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58199102/