首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python / Collections -删除出现相同次数的元素

Python / Collections -删除出现相同次数的元素
EN

Stack Overflow用户
提问于 2016-05-11 18:45:49
回答 5查看 99关注 0票数 3

示例1:

代码语言:javascript
复制
import collections

list = ['Mike', 'Mike', 'Mike', 'Jhon', 'Jhon', 'Rob', 'Rob', 'Carl', 'Carl']
list_counter = collections.Counter(list)
>> Counter({'Mike': 3, 'Rob': 2, 'Jhon': 2, 'Carl': 2})

示例2:

代码语言:javascript
复制
import collections
list = ['Sam', 'Sam', 'Sam', 'Sam', 'Mike', 'Mike', 'Mike', 'Jhon', 'Jhon', 'Rob', 'Rob']
list_counter = collections.Counter(list)
>> Counter({'Sam': 4, 'Mike': 3, 'Rob': 2, 'Jhon': 2})

我所要做的就是验证列表中是否存在2个或更多相同次数的元素,并将它们删除。

在示例1中,Rob、Jhon和Carl将被删除,它们是在列表中出现2次的3个元素。在示例2中,Rob和Jhon将被删除,而Sam和Mike将被保留在列表中。如果列表中只出现1个元素(例如Jhon n次),则不会删除任何内容。

EN

Stack Overflow用户

发布于 2016-05-11 19:02:25

代码语言:javascript
复制
import collections
your_list = ['Sam', 'Sam', 'Sam', 'Sam', 'Mike', 'Mike', 'Mike', 'Jhon', 'Jhon', 'Rob', 'Rob']
list_counter = collections.Counter(your_list)
filtered_list = [item for item in your_list if list_counter.get(item) != 2]
result = list(set(filtered_list))

过滤后的列表是一种python列表理解方式,用于比较列表项是否有计数器!= 2。

在示例二的情况下。

'Mike','Mike','Mike‘

现在正在做

list(set(filtered_list))

“迈克”

你不应该像'list‘那样命名你的变量。

票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37160325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档