0
点赞
收藏
分享

微信扫一扫

列表去重保持顺序不变

飞鸟不急 03-02 10:00 阅读 3

print(list(dict.fromkeys([i[sli] for i in lis])))


当你想要保留 lis 中第一次出现的元素时,以下是五种 Python 方法:

  1. 使用 set 使用 set 可以快速去除重复元素,然后将其转回列表。这样可以保留第一次出现的元素顺序:

unique_elements = list(set(lis))

  1. 使用列表推导式: 利用列表推导式,遍历 lis 中的元素,只保留第一次出现的元素:

unique_elements = [x for i, x in enumerate(lis) if x not in lis[:i]]

  1. 使用字典的 fromkeys 方法: 使用 fromkeys 方法创建一个字典,然后将其键转回列表。这样会保留第一次出现的元素顺序:

unique_elements = list(dict.fromkeys(lis))

  1. 使用 collections.OrderedDict 利用 OrderedDict 来保持元素的顺序,只保留第一次出现的元素:

from collections import OrderedDict
unique_elements = list(OrderedDict.fromkeys(lis))

  1. 使用 more_itertools.unique_everseen 如果你使用了 more_itertools 库,可以使用 unique_everseen 函数来保留第一次出现的元素:

from more_itertools import unique_everseen
unique_elements = list(unique_everseen(lis))

希望这些方法对你有帮助!如果你还有其他问题,欢迎继续提问。🌟

源: 与必应的对话, 2024/3/2

(1) Python 如何用一个列表的顺序去排另一个列表? - 知乎. https://www.zhihu.com/question/48377493.

(2) C# List根据另一个List集合或数组排序 - 木狼 - 博客园. https://www.cnblogs.com/itsone/p/11327928.html.

(3) java 一个list根据另一个list排序 - 掘金. https://bing.com/search?q=list+根据另外一个list排序.

(4) java stream实现 list根据另一个list排序 - CSDN文库. https://wenku.csdn.net/answer/59c8ff5c7cd94f64ab80871b6ad609c7.

(5) 记录:一个List按照另一个List进行排序 - CSDN博客. https://blog.csdn.net/weixin_41988248/article/details/107785890.

(6) python:根据一个列表对另外一个列表排序_python列表按照另一个列表排序-CSDN博客. https://blog.csdn.net/zxdd2018/article/details/124714603.

(7) python对两个关联list排序(sort,sorted)及自定义排序 - CSDN博客. https://blog.csdn.net/rosefun96/article/details/104768294.

(8) 在 Python 中按另一个列表对列表进行排序 | D栈 - Delft Stack. https://bing.com/search?q=list+根据另外一个list排序+Python+五种方法.

(9) undefined. https://bing.com/search?q=.



当你想从一个列表中移除重复的元素时,有几种方法可以实现这个目标。以下是一些常见的去重方法:

  1. 使用集合(Set):将列表转换为集合,然后再将集合转回列表。这会自动去除重复项。请注意,这种方法会改变原始列表中元素的顺序,因为集合是无序的。例如:

original_list = ["apple", "banana", "apple", "orange", "banana"]
unique_list = list(set(original_list))
print(unique_list)

输出结果:

['banana', 'orange', 'apple']

  1. 使用stream流(Python 3.8+):使用stream方法将列表转换为流,然后使用distinct()方法去除重复项,并将结果收集回列表。这种方法会保持原始列表中元素的顺序:

original_list = ["apple", "banana", "apple", "orange", "banana"]
unique_list = list(dict.fromkeys(original_list))
print(unique_list)

输出结果:

['apple', 'banana', 'orange']

  1. 使用循环和新列表:遍历原始列表,将不重复的元素添加到新列表中。这种方法也会保持原始列表中元素的顺序:

original_list = ["apple", "banana", "apple", "orange", "banana"]
unique_list = []
for item in original_list:
    if item not in unique_list:
        unique_list.append(item)
print(unique_list)

输出结果:

['apple', 'banana', 'orange']

  1. 使用列表推导式:使用列表推导式来创建一个新列表,只包含原始列表中不重复的元素:

original_list = ["apple", "banana", "apple", "orange", "banana"]
unique_list = [item for item in original_list if original_list.count(item) == 1]
print(unique_list)

输出结果:

['apple', 'banana', 'orange']

选择适合你需求的方法,并根据你的具体情况来去除列表中的重复元素。¹²³⁴源: 与必应的对话, 2024/3/2

(1) Java中List集合对象去重及按属性去重的8种方法 - CSDN博客. https://blog.csdn.net/lck_csdn/article/details/120708374.

(2) 【List集合去重的5种方式】_列表去重-CSDN博客. https://bing.com/search?q=list+去重方法.

(3) List数据去重的五种有效方法_list字段去重-CSDN博客. https://blog.csdn.net/yihuaiyan/article/details/94719541.

(4) 【List集合去重的5种方式】_列表去重-CSDN博客. https://blog.csdn.net/Jie975/article/details/109851875.

(5) List 去重的 6 种方法,这个方法最完美! - 知乎专栏. https://zhuanlan.zhihu.com/p/442741570.

举报

相关推荐

0 条评论