欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 代碼實(shí)現(xiàn)列表的最小公倍數(shù)

 更新時(shí)間:2021年11月11日 14:05:27   作者:Felix  
這篇文章主要介紹了Python 代碼實(shí)現(xiàn)列表的最小公倍數(shù),代碼實(shí)現(xiàn)了計(jì)算列表中元素的最小公倍數(shù)的功能,包括公式介紹,需要的朋友可以參考一下

本篇閱讀的代碼片段來自于30-seconds-of-python(https://github.com/30-seconds...)。

1. lcm

from functools import reduce
from math import gcd

def lcm(numbers):
  return reduce((lambda x, y: int(x * y / gcd(x, y))), numbers)

# EXAMPLES
lcm([12, 7]) # 84
lcm([1, 3, 4, 5]) # 60

兩個(gè)數(shù)的最大公約數(shù)和最小公倍數(shù)滿足如下公式:

lcm(a, b) * gcd(a, b) = abs(a * b)

而對(duì)于兩個(gè)以上數(shù)據(jù)的列表時(shí),只需要將任意兩個(gè)數(shù)的最小公倍數(shù)和剩下的其他數(shù)字繼續(xù)計(jì)算最小公倍數(shù)即可。

也就是說:

lcm(a, b, c, ...) = lcm(lcm(a, b), c, ...)

因此我們使用functools.reduce函數(shù)對(duì)列表進(jìn)行迭代。

2. functools.reduce

functools.reduce(function, iterable[, initializer])

reduce函數(shù)中的第一個(gè)參數(shù)是函數(shù)function,它接受兩個(gè)參數(shù)。reduce函數(shù)將function累積的應(yīng)用在第二個(gè)參數(shù),iterable,可迭代的對(duì)象上。function使用可迭代對(duì)象的前兩個(gè)值作為輸入?yún)?shù),并將返回值和可迭代對(duì)象的下一個(gè)值作為function的輸入?yún)?shù)進(jìn)行下一次迭代,直到用盡可迭代對(duì)象的所有值。例如以下的例子:

# ((((1+2)+3)+4)+5)
reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])

reduce函數(shù)大致相當(dāng)于:

def reduce(function, iterable, initializer=None):
    it = iter(iterable)
    if initializer is None:
        value = next(it)
    else:
        value = initializer
    for element in it:
        value = function(value, element)
    return value

3. 實(shí)際使用

上面的代碼片段是展示了Python一種使用方法。細(xì)心的同學(xué)可以看出來,如果要投入實(shí)際生產(chǎn)應(yīng)用,lcm函數(shù)是有一些問題的,主要是兩點(diǎn),一是異常處理,包括除零等;另一個(gè)是最小公倍數(shù)都是正整數(shù),而該函數(shù)的返回值可能出現(xiàn)負(fù)數(shù)。

30-seconds-of-python(https://github.com/30-seconds... ) 的代碼主要是展現(xiàn)了一種思路。并不會(huì)對(duì)邊緣情況和異常進(jìn)行檢查,背后的原因是為了保持項(xiàng)目的簡(jiǎn)單性,展示有趣的技術(shù)和思維方式。所有的代碼片段都假設(shè)用戶對(duì)問題、語(yǔ)言和可能發(fā)生的潛在錯(cuò)誤有基本的了解,因此不會(huì)添加異常處理或參數(shù)檢查。

到此這篇關(guān)于Python 代碼實(shí)現(xiàn)列表的最小公倍數(shù)的文章就介紹到這了,更多相關(guān)Python 列表最小公倍數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

  • python實(shí)現(xiàn)猜數(shù)游戲

    python實(shí)現(xiàn)猜數(shù)游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)猜數(shù)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • python中enumerate() 與zip()函數(shù)的使用比較實(shí)例分析

    python中enumerate() 與zip()函數(shù)的使用比較實(shí)例分析

    這篇文章主要介紹了python中enumerate()與zip()函數(shù)的使用比較,結(jié)合實(shí)例形式分析了enumerate()與zip()函數(shù)的功能、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-09-09
  • 基于PyQt5制作一個(gè)windows通知管理器

    基于PyQt5制作一個(gè)windows通知管理器

    python框架win10toast可以用來做windows的消息通知功能,通過設(shè)定通知的間隔時(shí)間來實(shí)現(xiàn)一些事件通知的功能。本文將利用win10toast這一框架制作一個(gè)windows通知管理器,感興趣的可以參考一下
    2022-02-02
  • python3.8 微信發(fā)送服務(wù)器監(jiān)控報(bào)警消息代碼實(shí)現(xiàn)

    python3.8 微信發(fā)送服務(wù)器監(jiān)控報(bào)警消息代碼實(shí)現(xiàn)

    這篇文章主要介紹了python3.8 微信發(fā)送服務(wù)器監(jiān)控報(bào)警消息代碼實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • python中tkinter的應(yīng)用:修改字體的實(shí)例講解

    python中tkinter的應(yīng)用:修改字體的實(shí)例講解

    今天小編就為大家分享一篇python中tkinter的應(yīng)用:修改字體的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python讀取Excel數(shù)據(jù)并生成圖表過程解析

    Python讀取Excel數(shù)據(jù)并生成圖表過程解析

    這篇文章主要介紹了Python讀取Excel數(shù)據(jù)并生成圖表過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python腳本調(diào)用iftop 統(tǒng)計(jì)業(yè)務(wù)應(yīng)用流量的思路詳解

    python腳本調(diào)用iftop 統(tǒng)計(jì)業(yè)務(wù)應(yīng)用流量的思路詳解

    這篇文章主要介紹了python腳本調(diào)用iftop 統(tǒng)計(jì)業(yè)務(wù)應(yīng)用流量的思路詳解,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 如何使用python計(jì)算復(fù)雜三角函數(shù)

    如何使用python計(jì)算復(fù)雜三角函數(shù)

    當(dāng)涉及到計(jì)算復(fù)雜的三角函數(shù)時(shí),Python 提供了強(qiáng)大的數(shù)學(xué)庫(kù)和函數(shù)來幫助我們進(jìn)行計(jì)算,在本篇博客中,我將介紹如何使用 Python 來計(jì)算復(fù)雜的三角函數(shù),需要的朋友可以參考下
    2023-08-08
  • python利用正則表達(dá)式提取字符串

    python利用正則表達(dá)式提取字符串

    相信大家在日常工作中經(jīng)常會(huì)遇見在文本中提取特定位置字符串的需求,python的正則性很好,很適合做這類字符串的提取,所以這篇文章就給大家詳細(xì)講一下提取的技巧,并通過示例代碼講解,對(duì)大家理解很有幫助,有需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-12-12
  • 最新評(píng)論