python - 删除字符串python中的行

标签 python string line delete-row

在 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/

相关文章:

python - 按字符串列表对字典列表进行排序

javascript - 从 tableau 工作簿下载所有过滤器

python - 多线程时 cv2 图像显示不起作用

Java将看起来像Array的String转换成String Array或String ArrayList

java - java中字符串可以包含<0x00>以及指定的值吗

java - 使用 PrintWriter 时删除 ".dat"文件中的空值行

eclipse - 如何使用Eclipse中的自动换行功能?

python - 发电机当前值

c# - 函数/正则表达式匹配较大字符串中的字符串部分并突出显示这些部分

duplicates - Aptana重复行快捷方式