测试面试题集-Python列表去重(5)
请定义函数,将列表[10, 1, 2, 20, 10, 3, 2, 1, 15, 20, 44, 56, 3, 2, 1]中的重复元素除去,写出至少3种方法。
-
方法一:利用集合去重
1 2 3 4 | list_1 = [ 10 , 1 , 2 , 20 , 10 , 3 , 2 , 1 , 15 , 20 , 44 , 56 , 3 , 2 , 1 ] def func1(list_1): return list ( set (list_1)) print ( '去重后的列表:' ,func1(list_1)) |
-
方法二:利用for循环
1 2 3 4 5 6 7 8 9 10 11 | list_2 = [ 10 , 1 , 2 , 20 , 10 , 3 , 2 , 1 , 15 , 20 , 44 , 56 , 3 , 2 , 1 ] def func2(list_2): #定义一个空列表 mylist_2 = [] #i遍历list_2 for i in list_2: #如果i不在mylist_2,则添加到mylist_2 if i not in mylist_2: mylist_2.append(i) print (mylist_2) print (func2(list_2)) |
-
方法三:巧用sort()排序
1 2 3 4 5 6 7 8 9 10 11 12 13 | list_3 = [ 10 , 1 , 2 , 20 , 10 , 3 , 2 , 1 , 15 , 20 , 44 , 56 , 3 , 2 , 1 ] def func3(list_3): result_list = [] temp_list = sorted (list_3) i = 0 while i< len (temp_list): #如果不在result_list则添加进去,否则i+1 if temp_list[i] not in result_list: result_list.append(temp_list[i]) else : i + = 1 return result_list print (func3(list_3)) |
-
方法四:巧用字典
1 2 3 4 5 6 7 8 | list_4 = [ 10 , 1 , 2 , 20 , 10 , 3 , 2 , 1 , 15 , 20 , 44 , 56 , 3 , 2 , 1 ] def func4(list_4): #fromkeys() 函数创建一个新字典,获取新字典的键(键值是唯一的) result_list = [] for i in {}.fromkeys(list_4).keys(): result_list.append(i) return result_list print (func4(list_4)) |
-
方法五:利用迭代器
1 2 3 4 5 6 7 8 9 10 | import itertools list_5 = [ 10 , 1 , 2 , 20 , 10 , 3 , 2 , 1 , 15 , 20 , 44 , 56 , 3 , 2 , 1 ] def func5(list_5): list_5.sort() temp_list = itertools.groupby(list_5) result_list = [] for i,j in temp_list: result_list.append(i) return result_list print (func5(list_5)) |
运行结果:
标签:
测试基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2019-09-12 webpack给目录起别名