python-3.x - 如果我在带括号的列表中有重复项,我该怎么办

标签 python-3.x list set brackets

假设我有以下列表:

 m=[1,2,[1],1,2,[1]]

我想带走所有的重复。如果不是列表中的括号,那么我可以使用:
 m=list(set(m))

但是当我这样做时,我收到错误:

不可散列的类型“设置”。

什么命令可以帮助我删除重复项,以便我只能留在列表中
 m=[1,2,[1]]

谢谢

最佳答案

第一步是将内部列表转换为元组:

>> new_list = [tuple(i) if type(i) == list else i for i in m]

然后创建一个集合来删除重复项:
>> no_duplicates = set(new_list)
>> no_duplicates
{1, 2, (1,)}

如果您愿意,您可以将其转换为列表。

关于python-3.x - 如果我在带括号的列表中有重复项,我该怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52031482/

相关文章:

java - 设置 JLabel 显示图像的正确方法是什么?

python - 为什么 scikit 学习分词器不能正确分词 utf-8(葡萄牙语)文本?

python - 在 Ubuntu 上编译 cx_Freeze 时出错

Python从二维列表中删除元素

list - 每次通过冒泡排序时,我如何打印出列表的状态?

python - 类集中 "__and__"和 "__rand__"有什么区别?

python - 在 Matplotlib 散点图中突出显示数据间隙 (NaN)

python - 如何在 Tornado 中实现可中断的 time.sleep?

python - 将列表与字典索引进行比较并根据原始列表顺序返回字典值

c# - 在类中为属性赋值