示例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次),则不会删除任何内容。
发布于 2016-05-11 19:02:25
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‘那样命名你的变量。
https://stackoverflow.com/questions/37160325
复制相似问题