删除列表中的重复项

Tapojyoti曼达尔

我有一个由列表组成的列表,每个子列表中都有4个项目(整数和浮点数)。我的问题是我想删除那些index = 1和index = 3与其他子列表匹配的子列表。

[[1, 2, 0, 50], [2, 19, 0, 25], [3, 12, 25, 0], [4, 18, 50, 50], [6, 19, 50, 67.45618854993529], [7, 4, 50, 49.49657024231138], [8, 12, 50, 41.65340802385248], [9, 12, 50, 47.80600357035001], [10, 18, 50, 47.80600357035001], [11, 18, 50, 53.222014760339356], [12, 18, 50, 55.667812693447615], [13, 12, 50, 41.65340802385248], [14, 12, 50, 47.80600357035001], [15, 13, 50, 47.80600357035001], [16, 3, 50, 49.49657024231138], [17, 3, 50, 49.49657024231138], [18, 4, 50, 49.49657024231138], [19, 5, 50, 49.49657024231138]]

例如,[7、4、50、49.49657024231138]和[18、4、50、49.49657024231138]在索引1和3处具有相同的整数。因此,我想删除一个,这无关紧要。

我看了一些代码,这些代码使我可以在单个索引的基础上执行此操作。

def unique_items(L):
found = set()
for item in L:
    if item[1] not in found:
        yield item
        found.add(item[1])

我一直在使用此代码,该代码允许我删除列表,但仅基于单个索引即可(我还没有完全理解代码,但是它可以正常工作。)

因此,问题是仅基于列表列表中index = 1和index = 3的重复值来删除子列表。

亚历山大卢卡宁13

如果需要比较(item[1], item[3]),请使用元组。元组是可哈希化的类型,因此可以用作set成员或dict键。

def unique_items(L):
    found = set()
    for item in L:
        key = (item[1], item[3])  # use tuple as key
        if key not in found:
            yield item
            found.add(key)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从SML中的列表中删除重复项

来自分类Dev

从numPy数组列表中删除重复项

来自分类Dev

使用Distinct删除列表中的重复项

来自分类Dev

从元组列表中删除重复项

来自分类Dev

从列表python中删除重复项

来自分类Dev

从Scheme中的列表中删除重复项

来自分类Dev

Elixir从列表中删除重复项

来自分类Dev

如何从对象列表中删除重复项

来自分类Dev

从配对列表中删除“重复项”

来自分类Dev

Python从列表中删除几个重复项

来自分类Dev

从类别列表中删除重复项

来自分类Dev

从排序列表中删除重复项

来自分类Dev

如何从列表中删除连续的重复项?

来自分类Dev

删除XYZ点列表中的重复项

来自分类Dev

如何删除列表中的重复项(Raku)

来自分类Dev

删除嵌套列表中的重复项

来自分类Dev

从CSV词频列表中删除重复项

来自分类Dev

从元组列表中删除重复项

来自分类Dev

删除数组列表中的重复项

来自分类Dev

删除linq列表中的重复项?

来自分类Dev

从嵌套词典列表中删除重复项

来自分类Dev

从列表元素中删除重复项

来自分类Dev

删除列表列表中的重复项

来自分类Dev

Python,从列表中删除重复项

来自分类Dev

Python:计算并删除列表中的重复项

来自分类Dev

从字典列表中删除重复项-Python

来自分类Dev

从懒惰列表Ocaml中删除重复项

来自分类Dev

Python:从列表中删除重复项

来自分类Dev

从列表中的元组中删除重复项