广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何用itertools解决无序排列组合的问题
  • 368
分享到

如何用itertools解决无序排列组合的问题

如何用排列组合itertools 2022-06-04 18:06:17 368人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

最近我作为python菜鸟一枚开始征战Codewars,所以打算在这里记下遇到的有意思的题目。今天这第一题叫做“Best Travel”: John和Mary计划去一些小镇旅行。Mary已经列好了这些小镇之

最近我作为python菜鸟一枚开始征战Codewars,所以打算在这里记下遇到的有意思的题目。今天这第一题叫做“Best Travel”:

John和Mary计划去一些小镇旅行。Mary已经列好了这些小镇之间的距离比如ls=[50, 55, 57, 58, 60]。但是John不想开车太累,所以提出了两个要求:1) 开车不超过某个距离比如t=174 miles 2) 只能去3个小镇。

选择哪3个小镇可以让John和Mary都满意呢?(即找到距离之和最接近或等于t的3个小镇)

这道题目可以抽象成:

输入一个整数列表ls和整数t:

1. 找出从ls中任取三个元素的所有组合

2. 计算每个组合的三个元素之和

3. 如果存在小于或等于t的和,那么从中挑出最大的,然后输出这个最大和对应的三元素组合

4. 如果不存在,只好返回None

实现要点:

1. 无序排列组合:

用itertools模块的combinations方法

2. 求和:

用sum函数

3. 求最大值:

用max函数

4. 捕获异常:

用try-except

借用这一题的某个best solution, 实现代码为:


def choose_best_sum(t, k, ls):
  import itertools

  try:
    return max(sum(combination) for combination in itertools.combinations(ls, k) if sum(combination) <= t)
  except:
    return None

以上这篇如何用itertools解决无序排列组合的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 如何用itertools解决无序排列组合的问题

本文链接: https://www.lsjlt.com/news/13252.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何用itertools解决无序排列组合的问题
    最近我作为Python菜鸟一枚开始征战Codewars,所以打算在这里记下遇到的有意思的题目。今天这第一题叫做“Best Travel”: John和Mary计划去一些小镇旅行。Mary已经列好了这些小镇之...
    99+
    2022-06-04
    如何用 排列组合 itertools
  • 如何解决PHP中数组的排序和打乱问题
    这篇文章主要介绍“如何解决PHP中数组的排序和打乱问题”,在日常操作中,相信很多人在如何解决PHP中数组的排序和打乱问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何解决PHP中数组的排序和打乱问题”的疑...
    99+
    2023-06-25
  • 如何解决Mysql中group by的排序问题
    小编给大家分享一下如何解决Mysql中group by的排序问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 类如 ...
    99+
    2022-10-19
  • 如何解决网站有收录无排名的问题
    这篇文章主要介绍“如何解决网站有收录无排名的问题”,在日常操作中,相信很多人在如何解决网站有收录无排名的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何解决网站有收录无排名的问题”的疑惑有所帮助!接下来...
    99+
    2023-06-10
  • 如何解决JDK8的ParallelStream遍历无序的问题
    这篇文章主要介绍了如何解决JDK8的ParallelStream遍历无序的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。JDK8的ParallelStream遍历无序Pa...
    99+
    2023-06-20
  • 如何解决Unity自定义组件之序列帧播放组件问题
    这篇文章主要为大家展示了“如何解决Unity自定义组件之序列帧播放组件问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决Unity自定义组件之序列帧播放组件问题”这篇文章吧。  我们知道...
    99+
    2023-06-22
  • 如何在java中使用分治法中的快速排序解决排序问题
    问题描述:输入一个数字N后,输入N个数字,将N个数字排序后输出。输入:输出:算法设计:快速排序的基本思想是基于分治策略的,其算法思想如下:(1)分解:先从数列中取出一个元素作为基准元素.以基准元素为标准,将问题分解为两个子序列,使小于或等于...
    99+
    2021-12-23
    java基础 java 分治法 快速排序
  • 如何使用批处理解决数值排序问题
    这篇文章将为大家详细讲解有关如何使用批处理解决数值排序问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。a.txt中有20行随机产生的数列,如下: 2928326128601232462131283250...
    99+
    2023-06-08
  • Go json反序列化“null“的问题如何解决
    本文小编为大家详细介绍“Go json反序列化“null“的问题如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Go json反序列化“null“的问题如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入...
    99+
    2023-07-05
  • 如何解决使用Jackson反序列化遇到的问题
    这篇文章主要为大家展示了“如何解决使用Jackson反序列化遇到的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决使用Jackson反序列化遇到的问题”这篇文章吧。Jackson反序列...
    99+
    2023-06-20
  • 如何解决Angularjs异步操作后台请求用$q.all排列先后顺序的问题
    这篇文章主要介绍了如何解决Angularjs异步操作后台请求用$q.all排列先后顺序的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。最...
    99+
    2022-10-19
  • 如何解决vue elementUI中table里数字、字母、中文混合排序问题
    小编给大家分享一下如何解决vue elementUI中table里数字、字母、中文混合排序问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去...
    99+
    2022-10-19
  • 编程开发中如何解决数值排序的问题
    这篇文章主要为大家展示了“编程开发中如何解决数值排序的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“编程开发中如何解决数值排序的问题”这篇文章吧。出题目的: 掌握任意数列之间的排序技巧 解题...
    99+
    2023-06-08
  • 如何解决jackson序列化和feign返回值的问题
    这篇文章给大家分享的是有关如何解决jackson序列化和feign返回值的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。jackson序列化和feign返回值jackson注意点被序列化/反序列化的实体a.必...
    99+
    2023-06-29
  • Java System#exit无法退出程序的问题如何解决
    这篇文章主要讲解了“Java System#exit无法退出程序的问题如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java System#exit无法退出程序的...
    99+
    2023-07-05
  • 如何解决@Table注解无法使用的问题
    这篇文章主要介绍了如何解决@Table注解无法使用的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。@Table注解无法使用及报红在新建实体类时想直接序列化,遇到注解不起作...
    99+
    2023-06-26
  • 如何解决JSON反序列化Long变Integer或Double的问题
    这篇文章主要为大家展示了“如何解决JSON反序列化Long变Integer或Double的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决JSON反序列化Long变Integer或Do...
    99+
    2023-06-26
  • 如何使用itextpdf解决PDF合并的问题
    这篇文章主要介绍了如何使用itextpdf解决PDF合并的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。itextpdf解决PDF合并的问题本文章是我在项目开发过程中解决...
    99+
    2023-06-20
  • 如何解决navicat监听程序当前无法识别的问题
    这篇文章主要介绍了如何解决navicat监听程序当前无法识别的问题,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。用navicat连接oracle...
    99+
    2022-10-18
  • 如何解决Win7无法将程序附到任务栏的问题
    以前用xp的时候,用优化大师或者类似的软件都可以解决这个问题,把该死的箭头去掉,或者你还可以自己直接进注册表进行修改。现在用win7了,发现同样可以使用上面的方法去掉小箭头。但是win7还新增了一个功能,就是可以把快捷方...
    99+
    2023-05-25
    程序 任务栏 问题 任务
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作