场景是这样的:

使用以下方法连接多个列表后:

list1 = ["A","B"]
list2 = ["A","B","C"]
list3 = ["C","D","E"]

mainlist = list1 + list2 + list3
mainlist.sort()

主列表现在如下所示:

mainlist = ['A', 'A', 'B', 'B', 'C', 'C', 'D', 'E']

我想删除任何不是重复值的内容.如果所讨论的值已存在于列表中,则不得touch 该值,而如果该值在主列表中仅存在一次,则我希望将其删除.

我try 使用这种方法,但似乎有些东西不起作用:

for i in mainlist:
    if mainlist.count(i) <= 1:
        mainlist.remove(i)
    else:
        continue

但我返回的列表如下所示:

mainlist = ['A', 'A', 'B', 'B', 'C', 'C', 'E'] #value "D" is not anymore present. Why?

我想返回的是这样一个列表:

mainlist = ['A', 'A', 'B', 'B', 'C', 'C'] #All values NOT duplicates have been deleted

我可以使用以下代码删除重复项:

for i in mainlist:
    if mainlist.count(i) > 1:
        mainlist.remove(i)
    else:
        continue

最后的结果是:

mainlist = ['A','B','C']

但真正的问题是:如何删除列表中的非重复项?

推荐答案

您的问题在于在对进行迭代时对进行操作.删除"D"后,循环停止,因为列表中没有索引6处的"E"元素.

创建列表副本并仅对该列表进行操作:

new_list = list(mainlist)
for i in mainlist:
    if mainlist.count(i) <= 1:
        new_list.remove(i)
    else:
        continue

Python相关问答推荐

Pydantic 2.7.0模型接受字符串日期时间或无

如何删除索引过go 的lexsort深度可能会影响性能?' &>

对整个 pyramid 进行分组与对 pyramid 列子集进行分组

运行Python脚本时,用作命令行参数的SON文本

输出中带有南的亚麻神经网络

在Python中动态计算范围

在Django admin中自动完成相关字段筛选

SQLAlchemy bindparam在mssql上失败(但在mysql上工作)

如何合并两个列表,并获得每个索引值最高的列表名称?

需要帮助重新调整python fill_between与数据点

CommandeError:模块numba没有属性generated_jit''''

搜索按钮不工作,Python tkinter

为什么调用函数的值和次数不同,递归在代码中是如何工作的?

使用__json__的 pyramid 在客户端返回意外格式

mdates定位器在图表中显示不存在的时间间隔

jsonschema日期格式

Polars表达式无法访问中间列创建表达式

FileNotFoundError:[WinError 2]系统找不到指定的文件:在os.listdir中查找扩展名

Python:使用asyncio.StreamReader.readline()读取长行

使用Django标签显示信息