如何用itertools解決無序排列組合的問題
最近我作為Python菜鳥一枚開始征戰(zhàn)Codewars,所以打算在這里記下遇到的有意思的題目。今天這第一題叫做“Best Travel”:
John和Mary計(jì)劃去一些小鎮(zhèn)旅行。Mary已經(jīng)列好了這些小鎮(zhèn)之間的距離比如ls=[50, 55, 57, 58, 60]。但是John不想開車太累,所以提出了兩個要求:1) 開車不超過某個距離比如t=174 miles 2) 只能去3個小鎮(zhèn)。
選擇哪3個小鎮(zhèn)可以讓John和Mary都滿意呢?(即找到距離之和最接近或等于t的3個小鎮(zhèn))
這道題目可以抽象成:
輸入一個整數(shù)列表ls和整數(shù)t:
1. 找出從ls中任取三個元素的所有組合
2. 計(jì)算每個組合的三個元素之和
3. 如果存在小于或等于t的和,那么從中挑出最大的,然后輸出這個最大和對應(yīng)的三元素組合
4. 如果不存在,只好返回None
實(shí)現(xiàn)要點(diǎn):
1. 無序排列組合:
用itertools模塊的combinations方法
2. 求和:
用sum函數(shù)
3. 求最大值:
用max函數(shù)
4. 捕獲異常:
用try-except
借用這一題的某個best solution, 實(shí)現(xiàn)代碼為:
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解決無序排列組合的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
利用Opencv實(shí)現(xiàn)圖片的油畫特效實(shí)例
這篇文章主要給大家介紹了關(guān)于利用Opencv實(shí)現(xiàn)圖片的油畫特效的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
Python getsizeof()和getsize()區(qū)分詳解
這篇文章主要介紹了Python getsizeof()和getsize()區(qū)分詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Pandas數(shù)據(jù)結(jié)構(gòu)中Series屬性詳解
本文主要介紹了Pandas數(shù)據(jù)結(jié)構(gòu)中Series屬性詳解,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04
python實(shí)現(xiàn)圖片二值化及灰度處理方式
今天小編就為大家分享一篇python實(shí)現(xiàn)圖片二值化及灰度處理方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
PyTorch預(yù)訓(xùn)練的實(shí)現(xiàn)
這篇文章主要介紹了PyTorch預(yù)訓(xùn)練的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
從入門到精通:Python項(xiàng)目打包與setup.py實(shí)戰(zhàn)指南
想要將你的Python項(xiàng)目分享給世界嗎?本指南將帶你從零開始,一步步學(xué)習(xí)如何打包你的Python項(xiàng)目,并創(chuàng)建一個專業(yè)的setup.py文件,我們將分享實(shí)用的技巧和最佳實(shí)踐,幫助你的項(xiàng)目在Python社區(qū)中脫穎而出,跟著我們的步伐,讓你的項(xiàng)目打包變得輕松有趣!2024-03-03
python實(shí)現(xiàn)多層感知器MLP(基于雙月數(shù)據(jù)集)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)多層感知器MLP,基于雙月數(shù)據(jù)集,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01

