首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否删除多余的空字符串?

是否删除多余的空字符串?
EN

Stack Overflow用户
提问于 2018-05-31 22:34:58
回答 2查看 84关注 0票数 -7

假设我有一个Python字符串列表,如下所示:

代码语言:javascript
复制
x = ["", "", "test", "", "", "not empty", "", "yes", ""]

如何删除:

  1. 所有前导空字符串
  2. 所有尾随空字符串
  3. 所有‘重复’空字符串

(即将所有内部空格值序列减少为单个值)

['test', '', 'not empty', '', 'yes']

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-01 04:42:29

代码语言:javascript
复制
content = list(x.next() for i, x in it.groupby(content))
b_l_rgx = r"^(\s+)?$"
if re.match(b_l_rgx, content[0]):
    del content[0]
if len(content) > 0 and re.match(b_l_rgx, content[-1]):
    del content[-1]
票数 0
EN

Stack Overflow用户

发布于 2018-06-01 10:01:54

下面是我提出的使用dropwhilegroupby的解决方案

代码语言:javascript
复制
from itertools import groupby, dropwhile

def spaces(iterable):
    it = dropwhile(lambda x: not x, iterable)
    grby = groupby(it, key=bool)
    try:
        k, g = next(grby)
    except StopIteration:
        return
    yield from g
    for k, g in grby:
        if k:
            yield ''
            yield from g

x = ["", "", "test", "", "", "not empty", "", "yes", ""]
print(list(spaces(x)))
# ['test', '', 'not empty', '', 'yes']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50626817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档