例1:
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:
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个元素(例如jhonn次),则不会删除任何内容。你知道吗
我的方法是首先将具有相同
count
的所有元素分组到defaultdict
对象中,然后根据过滤条件构建结果字典:通过使用
.values()
,然后对出现>=
2次的值进行列表理解,可以找到所有不同的量:但是,我不会使用
list
作为变量名,因为它会隐藏内置类型。你知道吗如果要删除至少两次以相同频率出现的所有名称:
这会给你留下:
如果还要确保计数不是1:
如果要保留所有麦克风,请遍历列表:
这会给你:
相关问题 更多 >
编程相关推荐