方法一:使用OrderedDict和列表推导式进行保持顺序去重
-
我们可以使用Python标准库中的OrderedDict对列表进行去重,并使用列表推导式将OrderedDict转换为列表。具体代码如下:
from collections import OrderedDict my_list = ['2', '2', '1', '3', '1', '3'] my_list = list(OrderedDict.fromkeys(my_list)) print(my_list) # [2, 1, 3]
-
在这个代码中,我们首先导入了Python标准库中的OrderedDict。然后,我们创建了一个包含重复元素的列表my_list。接下来,我们使用OrderedDict.fromkeys()方法对列表进行去重,并将返回的OrderedDict转换为列表。
方法二:使用set加sorted方法进行去重
-
我们也可以使用Python内置的set()函数对列表进行去重,并使用sorted()函数按照原有顺序排序。具体代码如下:
my_list = ['2', '2', '1', '3', '1', '3'] my_list = sorted(set(my_list), key=my_list.index) print(my_list) # [2, 1, 3]
-
在这个代码中,我们首先创建了一个包含重复元素的列表my_list。接下来,我们使用set()函数对列表进行去重,并使用sorted()函数按照原有顺序排序。由于set()函数会打乱原有顺序,因此我们需要使用key=my_list.index参数来指定排序规则。
总结:
- 虽然方法一使用的是OrderedDict,看起来更加高级,但是方法二使用的是Python内置函数,代码更加简单,所以推荐使用方法二。两种方法都可以满足我们的需求,具体使用哪种方法可以根据实际情况而定。