第二章 列表、元组和字典(八) 2020-04-16

第八课 案例实操:列表去重


1、新列表搜集法


(1)创建新列表


(2)遍历源列表的所有元素,若该元素不在新列表中,将元素添加到新列表中


这种方式可保证元素顺序


import random


# 使用列表推导式来创建一个包含重复元素的列表

src_list = [random.randint(20, 30) for i in range(15)]

print(src_list)


# 用新列表搜集:只搜集不重复的元素

target_list = []  # 空列表

# 遍历源列表中每个元素

for ele in src_list:

         #如果新列表不包含当前元素,新列表添加该元素即可

         #这样保证重复的元素在第一次添加之后,第二次就添加不进去了

         if ele not in target_list:

                   target_list.append(ele)

print(target_list)


2、使用set集合去重


set集合的特征:不允许重复元素


将列表元素传给set(),自动去重复元素


import random


src_list = [random.randint(20, 30) for i in range(15)]

print(src_list)


# 将源列表传给set集合,自动去除重复元素

# 再次恢复成列表

target_list = list(set(src_list))

 

print(target_list)


3、使用itertools模块的groupby函数去重


itertools 模块下提供了groupby 函数,该函数用于分组,相同的就分为同一组


注意:这种方式编写先对列表排序


import random

import itertools


src_list = [random.randint(20, 30) for i in range(15)]

print(src_list)


# 首先必须对列表进行排序

src_list.sort()

# 进行分组:相同的元素就分成同一组,因此不同的组当然就是不同的元素

it = itertools.groupby(src_list)

# 遍历各组,因此得到都是不同的元素(去重)

for k, g in it:

         print(k, end=” ”)



上一篇文章 第二章 列表、元组和字典(七) 2020-04-15 地址:

https://www.jianshu.com/p/9a8c1d36705c

下一篇文章 第三章 流程控制、阶段小结与练习(一) 2020-04-17 地址:

https://www.jianshu.com/p/2158bb8c79b8



以上资料内容来源网络,仅供学习交流,侵删请私信我,谢谢。

你可能感兴趣的:(第二章 列表、元组和字典(八) 2020-04-16)