我正在尝试使用python删除列表中的某些特定''。
列表为[1,'','',2,'','','',3,'']。我只想删除两个值之间的一个“”。这意味着我想要的输出是[1,'',2,'','',3]。我的代码显示如下:
for j in range (len(lst)):
if len(lst[j]) == 1:
lst.remove(lst[j+1])
答案 0 :(得分:1)
使用itertools.groupby
:
from itertools import groupby
l = [1,'','',2,'','','',3,'']
new_list = []
for v, g in groupby(l):
new_list += list(g) if v != '' else list(g)[:-1]
print(new_list)
打印:
[1, '', 2, '', '', 3]
版本2(带有itertools.chain
的单行):
from itertools import groupby, chain
l = [1,'','',2,'','','',3,'']
new_list = [*chain.from_iterable(list(g) if v != '' else list(g)[:-1] for v, g in groupby(l))]
print(new_list)
答案 1 :(得分:0)
您可以使用del
运算符。只需提供索引即可。 del lst[1]
。