专栏首页APP测试测试面试题集-Python列表去重

测试面试题集-Python列表去重

请定义函数,将列表[10, 1, 2, 20, 10, 3, 2, 1, 15, 20, 44, 56, 3, 2, 1]中的重复元素除去,写出至少3种方法。
  • 方法一:利用集合去重

# !/usr/bin/python3
# -*- coding:utf-8 -*-
# @Time:2019/12/10  07:00
# @微信公众号:ITester软件测试小栈
# @Author:coco
# @Python交流群:604469740
# @Email:3593721069@qq.com
# @File:test.py
# @Software:PyCharm

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循环
# !/usr/bin/python3
# -*- coding:utf-8 -*-
# @Time:2019/12/10  07:00
# @微信公众号:ITester软件测试小栈
# @Author:coco
# @Python交流群:604469740
# @Email:3593721069@qq.com
# @File:test.py
# @Software:PyCharm

'''用i遍历list,如果不在新列表中,则添加到新列表,,否则不添加进去,依次循环'''
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)
            return list_2
    print(func2(list_2))
  • 方法三:巧用sort()排序
# !/usr/bin/python3
# -*- coding:utf-8 -*-
# @Time:2019/12/10  07:00
# @微信公众号:ITester软件测试小栈
# @Author:coco
# @Python交流群:604469740
# @Email:3593721069@qq.com
# @File:test.py
# @Software:PyCharm

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))
  • 方法四:巧用字典
# !/usr/bin/python3
# -*- coding:utf-8 -*-
# @Time:2019/12/10  07:00
# @微信公众号:ITester软件测试小栈
# @Author:coco
# @Python交流群:604469740
# @Email:3593721069@qq.com
# @File:test.py
# @Software:PyCharm

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))
  • 方法五:利用迭代器
# !/usr/bin/python3
# -*- coding:utf-8 -*-
# @Time:2019/12/10  07:00
# @微信公众号:ITester软件测试小栈
# @Author:coco
# @Python交流群:604469740
# @Email:3593721069@qq.com
# @File:test.py
# @Software:PyCharm

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))

运行结果:

以上

That's all

ITester软件测试小栈

本文分享自微信公众号 - ITester软件测试小栈(ITestingA),作者:ITester小锦鲤

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 测试用例集-11.QQ表情收藏功能测试用例

    表情包支持的图片格式包括jpg、jpeg、bmp、gif、png,不支持doc、xls、flv、txt等;

    ITester软件测试小栈
  • Python接口自动化之logging日志

    点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 07:30准时推送。

    ITester软件测试小栈
  • Selenium自动化测试-设置元素等待

    使用sleep,需先导入time模块,import time, 然后使用time.sleep()来让程序等待多久。

    ITester软件测试小栈
  • Python-数据解析-职位信息-中

    在 Spider 类中,定义一个用于解析网页的方法 parse_page(),分别使用 re 模块、lxml 和 bs4 库进行实现。

    小团子
  • Java中List集合去除重复数据的方法

    4.把list里的对象遍历一遍,用list.contain(),如果不存在就放入到另外一个list集合中

    三哥
  • Python list(列表)

    Python一共有6种序列的内置类型,list和tuple是其中最常见的。6种序列的都可以进行的操作包括索引、切片,加(实际上是连接),乘(实际上是复制)...

    Steve Wang
  • R语言数据清洗实战——高效list解析方案

    list是R语言中包容性最强的数据对象,几乎可以容乃所有的其他数据类型。 但是包容性最强也也意味着他对于内部子对象的类型限制最少,甚至内部可以存在递归结构,这样...

    数据小磨坊
  • Python 嵌套列表展开

    问题1:对于列表形如 list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]] 转化成列表 list_2 = [1, 2, ...

    py3study
  • <算法入门>快速理解7种排序算法 | python3实现(附源码)学习难度:桶排序(简化版)冒泡排序选择排序插入排序快速排序(面试常用算法)归并排序(先分后和, 分而治之)希尔排序

    算法是程序的灵魂,而排序算法 是算法的入门经典,作者在此用python亲自实现了7种主流的排序算法,并做简短的说明. ? 排序算法 学习难度: 桶排序 < 冒泡...

    zhaoolee
  • Python11 集合

    使用discard删除,与remove不同的是,如果删除的元素不存在,discard不会报错。

    py3study

扫码关注云+社区

领取腾讯云代金券