【李刚-21天通关Python-10】之 实操:列表去重
方法一
- 创建新列表
- 遍历原列表的所有元素,若该元素不在新列表中,将元素添加到新列表中
- 这种方法可保证元素顺序
# 使用列表推导式来创建一个包含重复元素的列表
import random
src_list = [random.randint(20, 30) for i in range(15)]
# 用新列表收集,只收集不重复的元素
target_list = []
# 遍历原列表中的每个元素
for ele in src_list:
if ele not in target_list:
target_list.append(ele)
print(target_list)
方法二
- 利用 set 集合,特征:不允许重复元素
- 将列表元素传给 set() ,自动去重
# 使用列表推导式来创建一个包含重复元素的列表
import random
src_list = [random.randint(20, 30) for i in range(15)]
# 将源列表传给set集合,自动去除重复元素
# 再次恢复成列表
target_list = set(src_list)
print(target_list)
方法三
- 使用 itertools 模块
- itertools 模块下提供了 groupby 函数,该函数用于分组,相同的就分为一组
- 注意:这种方式必须先对列表排序
# 使用列表推导式来创建一个包含重复元素的列表
import random
import itertools
src_list = [random.randint(20, 30) for i in range(15)]
# 对列表进行排序
src_list.sort()
it = itertools,groupby(src_list)
for k,g in it:
print(k, end=" ")