如何解决从列表中找到条件最高的组合
所以我有一个360元素列表,我想找到11个数字组合的最高和,但要有条件。要使它更清晰一点:
1-获取列表作为输入
2-创建一个包含11个数字的组合列表
3-检查列表中的特定条件
4-如果是,请返回列表的总和
我试图使用itertools.combination然后检查条件,但是花了很长时间,只要我的清单很大,所以我想知道是否有一种方法可以先检查条件而不是创建所有组合然后过滤他们出来。
编辑:伙计们,我想您对我的问题不太了解。我想首先获得列表的组合(例如排列),而不仅仅是获得最高的11个数字
解决方法
为什么不对列表进行排序,降序,然后选择前11个?如果需要索引,则可以从原始列表中找到所需的数字。
import random
import pprint
original_items = random.choices(range(999),k=360)
pprint.pprint(original_items)
highest_11 = sorted(original_items,reverse=True)[:11]
pprint.pprint(highest_11)
,
通常,对列表进行排序,然后找到满足您条件的前11个数字。 即使您的条件不是确定性的,您仍然可以针对搜索本身将运行时缩短为线性(因此,运行时将取决于条件)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。