Skip to main content
 首页 » 编程设计

python之如何删除此列表中的重复元素

2025年05月04日12qlqwjy

我有一个列表是 a = ['R','R','R','B','R','B','B','S','S'] 。我的目标是删除重复的“R”和“S”,然后删除“B”(如果只有一个 R 或 S,则保留它)。因此,我希望输出为 ['R','R','S'],但我的输出是 ['R', 'S']。 谁能帮我看看我的代码?谢谢

这是我的代码

a = ['R','R','R','B','R','B','B','S','S']  # create a list to store R S B 
 
a = [x for x in a if x != 'B']  # Delete all the B's 
 
new_list = []  # create another list to store R and S without repeat 
last = None 
for x in a: 
    if last == x and (len(new_list) == 0 or new_list[-1] != x): 
        new_list.append(last) 
    last = x 
print(new_list) 
 

我的输出是这样的

['R', 'S'] 

但是我想要这个

['R','R','S'] 

请您参考如下方法:

您可以先使用 itertools.groupby 对元素进行分组,然后删除 B 值:

from itertools import groupby 
 
a = ['R','R','R','B','R','B','S','S']  # create a list to store R S B 
[k for k, v in groupby(a) if k != 'B'] 

结果:

['R', 'R', 'S']