我有一个列表,其中每个元素包含未知数量的集合(列表中的集合因用户在程序中所做的选择而异。)现在我想删除集合数最少的所有元素,只保留集合数最多的一个或多个元素
我的列表可以如下所示:
[{'Chocolate'}, {'Chocolate'}, {'JellyBean', 'Chips'}]
在本例中,我希望只保留最后一个元素,因为它包含两个集合,其余的只包含一个集合。但有时有几个元素的集合数最高,然后我想把它们全部保留下来
我试着做一些类似的事情:
if min(len(list)) != max(len(list)):
list.remove(min(len(list)))
但是Python只是说,“'int'对象是不可编辑的”,我可以理解为什么,但不能理解如何思考
如果有人帮助我,我会非常感激的
您需要迭代列表一次以确定最大值,然后再次查找要保留的元素。将有更奇特的解决方案以尽可能最有效的方式完成,但将更难理解
您可能可以执行删除操作,但通常Python会对更改您正在积极迭代的内容感到恼火
为什么不创建一个包含最多元素的新列表呢。请尝试以下内容:
结果:
相关问题 更多 >
编程相关推荐