如何从元组列表中删除重复项,但保持原始顺序

水獭

我想删除多余的元组,但保留外观顺序。我看着类似的问题。这个问题在numpy.array中查找唯一行看起来很有希望,但是以某种方式对我不起作用。

我可以在此答案中使用熊猫(https://stackoverflow.com/a/14089586/566035),但我更喜欢不使用熊猫,以便py2exe生成的可执行文件很小。

import numpy as np

data = [('a','z'), ('a','z'), ('a','z'), ('1','z'), ('e','z'), ('c','z')]

#What I want is:
    array([['a', 'z'],
           ['1', 'z'],
           ['e', 'z'],
           ['c', 'z']], 
          dtype='|S1')

#What I have tried:
# (1) numpy.unique, order not preserved
np.unique(data)

    array([['a', 'z'],
           ['c', 'z'],
           ['1', 'z'],
           ['e', 'z']], 
          dtype='|S1')

# (2) python set, order not preserved
set(data)

    set([('1', 'z'), ('a', 'z'), ('c', 'z'), ('e', 'z')])

# (3) answer here : https://stackoverflow.com/a/16973510/566035, order not preserved
a = np.array(data)
b = np.ascontiguousarray(a).view(np.dtype((np.void, a.dtype.itemsize * a.shape[1])))
_, idx = np.unique(b, return_index=True)

a[idx]

    array([['1', 'z'],
           ['a', 'z'],
           ['c', 'z'],
           ['e', 'z']], 
          dtype='|S1')
ish

就效率而言,这不是很好,但是它是非常简单的可读代码,并且可以用于较小的列表:

sorted(set(data), key=data.index)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

OCaml:从列表中删除重复项,同时保持右侧的顺序

来自分类Dev

有没有办法在保持原始顺序的情况下删除列表中的重复项?

来自分类Dev

如何从列表中删除2个或更多重复项并保持其初始顺序?

来自分类Dev

删除没有设置的重复项,没有for循环,保持顺序并更新原始列表

来自分类Dev

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

来自分类Dev

从元组列表中删除重复项

来自分类Dev

从元组列表中删除重复项

来自分类Dev

如果重复的元组(包括项的顺序)完全相同,则从列表中删除它们

来自分类Dev

如何从元组中删除重复项

来自分类Dev

删除对象列表中的重复项,保持最大值和顺序

来自分类Dev

删除对象列表中的重复项,并保持最大值和顺序

来自分类Dev

如何在Hive中对文件进行重复数据删除并保持原始排序顺序?

来自分类Dev

排序并删除重复项后,保持ArrayList中的顺序

来自分类Dev

排序并删除重复项后,保持ArrayList中的顺序

来自分类Dev

如何展平元组列表并删除重复项?

来自分类Dev

删除元组列表中的重复项和求和值

来自分类Dev

如何在C#元组列表中删除反向重复项

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何从sql列表中删除重复项?

来自分类Dev

如何从多维数组中删除重复项和原始副本?

来自分类Dev

从列表中删除重复项:保留顺序和每个元素的最后一个重复项

来自分类Dev

如何删除.bash_history中的重复项并保留顺序?

来自分类Dev

删除元组中的以下重复项

来自分类Dev

从元组字典中删除重复项

来自分类Dev

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

来自分类Dev

在元组列表中查找重复项

Related 相关文章

  1. 1

    OCaml:从列表中删除重复项,同时保持右侧的顺序

  2. 2

    有没有办法在保持原始顺序的情况下删除列表中的重复项?

  3. 3

    如何从列表中删除2个或更多重复项并保持其初始顺序?

  4. 4

    删除没有设置的重复项,没有for循环,保持顺序并更新原始列表

  5. 5

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

  6. 6

    从元组列表中删除重复项

  7. 7

    从元组列表中删除重复项

  8. 8

    如果重复的元组(包括项的顺序)完全相同,则从列表中删除它们

  9. 9

    如何从元组中删除重复项

  10. 10

    删除对象列表中的重复项,保持最大值和顺序

  11. 11

    删除对象列表中的重复项,并保持最大值和顺序

  12. 12

    如何在Hive中对文件进行重复数据删除并保持原始排序顺序?

  13. 13

    排序并删除重复项后,保持ArrayList中的顺序

  14. 14

    排序并删除重复项后,保持ArrayList中的顺序

  15. 15

    如何展平元组列表并删除重复项?

  16. 16

    删除元组列表中的重复项和求和值

  17. 17

    如何在C#元组列表中删除反向重复项

  18. 18

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

  19. 19

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

  20. 20

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

  21. 21

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

  22. 22

    如何从sql列表中删除重复项?

  23. 23

    如何从多维数组中删除重复项和原始副本?

  24. 24

    从列表中删除重复项:保留顺序和每个元素的最后一个重复项

  25. 25

    如何删除.bash_history中的重复项并保留顺序?

  26. 26

    删除元组中的以下重复项

  27. 27

    从元组字典中删除重复项

  28. 28

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

  29. 29

    在元组列表中查找重复项

热门标签

归档