我只在前两个元素相同的情况下才尝试从嵌套列表中删除重复项,而忽略了第三个元素…
清单:
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 ,更新嵌套对象的方式是:- 但是由于数组处于状态,这会使您的工作更加困难。 因此,有两种方法可以执行此操作。 第一种方式(困难的方式) 自己创建一个新对象并