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

基于前两个元素从嵌套列表中删除重复项

马星阑
2023-03-14
问题内容

我只在前两个元素相同的情况下才尝试从嵌套列表中删除重复项,而忽略了第三个元素…

清单:

L = [['el1','el2','value1'], ['el3','el4','value2'], ['el1','el2','value2'], ['el1','el5','value3']]

将返回:

L = [['el3','el4','value2'], ['el1','el2','value2'], ['el1','el5','value3']]

我在这里找到了一种类似的简单方法:

dict((x[0], x) for x in L).values()

但这仅适用于第一个元素而不适用于第一个2元素,而这正是我想要的。


问题答案:

如果顺序无关紧要,则可以使用相同的方法,但是将第一和第二个元素的元组用作键:

dict(((x[0], x[1]), x) for x in L).values()

或在Python 2.7及更高版本上:

{(x[0], x[1]): x for x in L}.values()

而不是(x[0], x[1])您可以使用tuple(x[:2]),而是使用您认为更具可读性的内容。



 类似资料:
  • 问题内容: 我要删除重复的项目,重复的项目可以撤消。结果应为: 如何在Python中实现? 问题答案: 如果订单很重要,您可以随时使用OrderedDict

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

  • 我的变量如下所示: 我需要的是删除列表中的最后一个!我尝试检查文档,在上使用了函数,但不起作用。有什么想法或线索吗?谢谢!

  • 问题内容: 我使用以下方式列出了重复项: 现在,如何删除除一条消息以外的所有消息(我正在尝试删除重复项,以便可以在上应用唯一索引)。 问题答案: 使用和分配行号,以便删除重复对中除一个以外的所有行。

  • 我试图编辑我的deletar()方法,把一个迭代器移除元素,但没有工作,错误继续。

  • 问题内容: 我想从我的redux状态中删除一个元素。我使用无缝不可变及其API对状态进行操作。但是我找不到在嵌套状态时删除元素的任何好方法。 所以我要删除的元素是: 谢谢! 问题答案: 有时我也陷入了类似情况。 因此,根据redux docs ,更新嵌套对象的方式是:- 但是由于数组处于状态,这会使您的工作更加困难。 因此,有两种方法可以执行此操作。 第一种方式(困难的方式) 自己创建一个新对象并