删除列表中的特定项目

时间:2019-06-18 16:46:49

标签: python

我正在尝试使用python删除列表中的某些特定''。

列表为[1,'','',2,'','','',3,'']。我只想删除两个值之间的一个“”。这意味着我想要的输出是[1,'',2,'','',3]。我的代码显示如下:

for j in range (len(lst)):
    if len(lst[j]) == 1:
        lst.remove(lst[j+1])

2 个答案:

答案 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]