gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 07:13:45 26 4
gpt4 key购买 nike

我有一个列表是 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']

关于python - 如何删除此列表中的重复元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56796328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com