Skip to content

如何对列表中的元素去重

面试题目

  • 级别: L1
  • 知识模块: Python 编程语言

题目描述

  • 如何对列表中的元素去重?
  • 如果使用集合自己如何处理?
  • 如果使用字典的方式如何处理

公司

  • 美团外包

招聘类型

社招

题目解析

题目主要考察对字典,集合以及唯一性的理解

  1. 列表中的元素都是不可变类型数据, 可以使用将列表转换成集合的方式实现去重。
  2. 也可以使用字典,将列表中的元素做为字典中的 key 实现去重,因为 key 具有唯一性。
  3. 如果列表中的数据是可变数据数据,需要通过遍历方式,根据数据的某一特性进行去重

答案

  1. 转集合方法
data = [1,1,2,2,2,3,3,"a","a",(1,1),(1,1)]
new_list = list(set(data))
print(new_list)
  1. 字典方法
data = [1,1,2,2,2,3,3,"a","a",(1,1),(1,1)]
new_list = list(dict.fromkeys(data))
print(new_list)
# dict.fromkeys() 是一个用于创建新字典的静态方法,该字典的键来自一个可迭代对象,由于字典key值唯一的特性
# 旧列表相同的key值只会出现一次
# list()再将这个字典转换回列表
  1. 遍历配合字典方式
data = [1,1,2,2,2,3,3,"a","a",(1,1),(1,1)]
new_data = {}
for k in data:
    new_data[k] = k
new_list = list(new_data.keys())
print(new_list)