当前位置: 首页 > 面试题库 >

如何从python中的列表中删除重复的元组?

曹建明
2023-03-14
问题内容

我有一个包含元组列表的列表,如下所示。

mylist = [['xxx', 879], ['yyy', 315], ['xxx', 879], ['zzz', 171], ['yyy', 315]]

我想从中删除重复的元组,mylist并得到如下输出。

mylist = [['xxx', 879], ['yyy', 315], ['zzz', 171]]

似乎set在python中不起作用。

mylist = list(set(mylist))

在python中有什么快速简便的方法(也许使用库)吗?


问题答案:

您需要编写保留第一个子列表的代码,其余部分删除。执行此操作的最简单方法是反转mylist,将其加载到dict对象中,然后再次将其键值对作为列表检索。

>>> list(map(list, dict(mylist).items()))

或者,使用 列表理解 -

>>> [list(v) for v in dict(mylist).items()]



[['zzz', 171], ['yyy', 315], ['xxx', 879]]

注意,此答案不维护顺序!另外,如果您的子列表可以包含两个以上的元素,那么最好的方法就是对哈希数据的哈希化版本进行哈希处理(如@JohnJosephFernandez的答案所示)。



 类似资料:
  • 问题内容: 我想从列表列表中删除所有重复列表。 所以我有一个这样的清单清单。 我希望有: 我不知道该怎么办。 谢谢 问题答案: 您可以使用一组: 或者,如果您更喜欢列表推导/生成器: 最后,如果顺序很重要,则可以始终对b进行排序:

  • 问题内容: 我在Python中有一个列表列表: 我想从中删除重复的元素。如果这是正常列表,而不是我可以使用的列表set。但不幸的是,该列表不可散列,因此无法建立一组列表。只有元组。因此,我可以将所有列表转换为元组,然后使用set并返回列表。但这不是很快。 如何以最有效的方式做到这一点? 上面的结果应为: 我不在乎保留订单。 注意:这个问题很相似,但不是我所需要的。搜索了SO,但没有找到确切的重复项

  • 问题内容: Google Python类| 清单练习- 给定一个数字列表,返回一个列表,其中所有相邻的==元素都已简化为单个元素,因此[1、2、2、3]返回[1、2、3]。您可以创建一个新列表或修改传入的列表。 我使用新列表的解决方案是- 问题甚至暗示可以通过修改传入列表来完成。但是,python文档警告不要在使用for循环迭代列表时修改元素。 我想知道除了遍历列表之外还能做些什么呢?我不是在寻找

  • 问题内容: 如果想基于每个嵌套列表的第一个元素评估重复项,谁能提出一个好的解决方案从嵌套列表中删除重复项? 主列表如下所示: 如果已经在第一位置出现了另一个具有相同元素的列表,那么我想删除该列表并得到以下结果: 您可以建议一种算法来实现此目标吗? 问题答案: 您是否关心保留订单/删除了哪些重复项?如果不是,则: 会做的。如果您想保留订单并想保留第一个订单,则:

  • 问题内容: 我有一个字典列表,其中特定值重复多次,我想删除重复的值。 我的清单: 删除重复值的功能: 当我调用此函数时,我得到了。 当我尝试遍历生成器时,我得到 有没有办法删除重复的值或遍历生成器 问题答案: 您可以通过字典理解轻松地删除重复键,因为字典不允许重复键,如下所示- 输出-

  • 问题内容: 我想从列表中删除重复项,但我无法正常工作: 问题答案: 如果该代码不起作用,则可能是你未在该类上正确实现。 大概有一些钥匙(我们称之为)可以唯一地标识一个客户。例如 的适当定义equals(Object)如下所示: 为了完整起见,你还应该实现hashCode两个Customer相等的对象将返回相同的哈希值。hashCode上述定义的匹配项为equals: 还值得注意的是,如果列表很大,

  • 问题内容: 如何从ArrayList中删除重复的元素? 问题答案: 如果你不想在中添加重复项,则应考虑为什么要使用允许重复项的。删除重复元素的最简单方法是将内容添加到中(不允许重复),然后将其添加Set回中ArrayList: 当然,这会破坏中的元素顺序。

  • 问题内容: 我已经看过这篇文章: Python:通过删除每个第n个元素从现有列表构建新列表,但是由于某些原因,它对我不起作用: 我这样尝试: 此函数需要一个列表和。然后,它使用列表中的n步删除第n个元素,并打印结果。 这是我的函数调用: 错误的输出: 代替 然后我从上面的链接尝试了一个变体: 再次,函数调用: 给了我同样的错误的结果: 不是 如何正确地从列表中删除/删除/删除 第n个 项目? 问题