博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
checkio-non unique elements
阅读量:4147 次
发布时间:2019-05-25

本文共 1389 字,大约阅读时间需要 4 分钟。

你将得到一个含有整数(X)的非空列表。在这个任务里,你应该返回在此列表中的非唯一元素的列表。要做到这一点,你需要删除所有独特的元素(这是包含在一个给定的列表只有一次的元素)。解决这个任务时,不能改变列表的顺序。例如:[1,2,3,1,3] 1和3是非唯一元素,结果将是 [1, 3, 1, 3]。

non-unique-elements
输入: 一个含有整数的列表。
输出: 一个含有不唯一元素的整数列表。
如何使用: 这个任务将帮助您了解如何操作数组,这是解决更复杂的任务的基础。这个概念可以很容易地推广到真实世界的任务。例如你需要通过删除低频的元素(噪声)来使统计数据更清楚。
前提:
0 < |X| < 1000

import collectionsdef checkio(data):    #Your code here    #It's main function. Don't remove this function    #It's used for auto-testing and must return a result for check.      #replace this for solution    a=collections.Counter(data)    data1=data[:]    for i in data:        if a[i]<=1:            data1.remove(i)    data=data1    return data#Some hints#You can use list.count(element) method for counting.#Create new list with non-unique elements#Loop over original listif __name__ == "__main__":    #These "asserts" using only for self-checking and not necessary for auto-testing    assert isinstance(checkio([1]), list)    assert checkio([1, 2, 3, 1, 3]) == [1, 3, 1, 3]    assert checkio([1, 2, 3, 4, 5]) == []    assert checkio([5, 5, 5, 5, 5]) == [5, 5, 5, 5, 5]    assert checkio([10, 9, 10, 10, 9, 8]) == [10, 9, 10, 10, 9]

counter计数,统计list中每个元素出现的次数。用list.count同样可以做到,结果更简单,不需要引入collections模块。data1是data的浅拷贝,修改data1不会改变data。对list一边遍历一遍删除会出现问题的。

a=[1,3,4]for i in a:    a.remove(i)

结果是[3]

因为删除1之后,list变为[3,4]。这时候i值由0变为1,会便利到a[1]这个元素也就是这时候的4,然后删除4。
可以倒序便利,深拷贝,或者pop()。

转载地址:http://yjvti.baihongyu.com/

你可能感兴趣的文章
HTTP和HttpServletRequest 要点
查看>>
在osg场景中使用GLSL语言——一个例子
查看>>
laravel 修改api返回默认的异常处理
查看>>
laravel事务
查看>>
【JavaScript 教程】浏览器—History 对象
查看>>
这才是学习Vite2的正确姿势!
查看>>
7 个适用于所有前端开发人员的很棒API,你需要了解一下
查看>>
49个在工作中常用且容易遗忘的CSS样式清单整理
查看>>
20种在学习编程的同时也可以在线赚钱的方法
查看>>
隐藏搜索框:CSS 动画正反向序列
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(上)
查看>>
【视频教程】Javascript ES6 教程27—ES6 构建一个Promise
查看>>
【5分钟代码练习】01—导航栏鼠标悬停效果的实现
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(中)
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(下)
查看>>
【web素材】03-24款后台管理系统网站模板
查看>>
Flex 布局教程:语法篇
查看>>
年薪50万+的90后程序员都经历了什么?
查看>>
2019年哪些外快收入可达到2万以上?
查看>>
【JavaScript 教程】标准库—Date 对象
查看>>