假设我有一个像这样的字符串的Python列表:
x = ["", "", "test", "", "", "not empty", "", "yes", ""]
如何删除:
['test', '', 'not empty', '', 'yes']
答案 0 :(得分:0)
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]
答案 1 :(得分:0)
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']