假设我有一个Python字符串列表,如下所示:
x = ["", "", "test", "", "", "not empty", "", "yes", ""]
如何删除:
(即将所有内部空格值序列减少为单个值)
['test', '', 'not empty', '', 'yes']
发布于 2018-06-01 04:42:29
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]
发布于 2018-06-01 10:01:54
下面是我提出的使用dropwhile
和groupby
的解决方案
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']
https://stackoverflow.com/questions/50626817
复制相似问题