【发布时间】:2016-05-11 10:45:48
【问题描述】:
示例 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 个元素(例如 Jhon n 次),则不会删除任何内容。
【问题讨论】:
-
你有没有尝试过?
-
其实我不知道,我只知道我可以用 list_counter["Sam"] 轻松检索每个元素的出现
-
您是在删除计数为 2 的元素,不多不少?
-
Counter({'Mike': 3, 'Rob': 2, 'Jhon': 2, 'Carl': 2,"foo":4,"bar":4})会发生什么? -
@PadraicCunningham ...如果我已经很好地理解了OP在这里的意图,那么应该是
Counter({'Mike':3})... nop?
标签: python collections