测试面试题集-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))

  运行结果:

 

 

  

posted @   小旭的blog  阅读(129)  评论(0编辑  收藏  举报
编辑推荐:
· .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给目录起别名
点击右上角即可分享
微信分享提示