第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將最大數(shù)字放在列表的第一個(gè)位置時(shí)未給出正確答案

將最大數(shù)字放在列表的第一個(gè)位置時(shí)未給出正確答案

繁花不似錦 2023-10-26 17:04:39
PyMuPDF 的下一版本將支持提取音頻注釋。使用此腳本使用 PyMuPDF 從 PDF 中提取音頻注釋,它很容易使用,只需調(diào)用該腳本并將 PDF 文件作為第一個(gè)參數(shù)傳遞即可:python script.py myfile.pdf注意:僅適用于 Windows。import fitz, sys, os, subprocessassert len(sys.argv) == 2, "need filename as parameter"ifile = sys.argv[1]doc = fitz.open(ifile)ofolder = os.path.dirname(ifile)if ofolder == "":    ofolder = os.getcwd()flnm = os.path.splitext(os.path.basename(ifile))[0]defolder = ofolder + "\\" + flnmos.mkdir(defolder)defolder = defolder + "\\" + flnmfor page in doc:    print(page)    annotNumber = 1    for annot in page.annots(types=[fitz.PDF_ANNOT_SOUND]):          try:             sound = annot.soundGet()          except Exception as e:            print(e)            continue        for k, v in sound.items():            print(k, "=", v if k != "stream" else len(v))        ofile = defolder + ".page." + str(page.number) + ".annot." + str(annotNumber) + ".raw"        fout = open(ofile,"wb")         fout.write(sound["stream"])        fout.close()        ofileffmpeg = defolder + ".page." + str(page.number) + ".annot." + str(annotNumber) + ".mp3"        annotNumber += 1        if "channels" in sound:            channels = str(sound["channels"])        else:            channels = "1"        if "encoding" in sound:            if sound["encoding"] == "Signed":                encoding = "s"            else:                encoding = "u"        else:            encoding = "u"        if "bps" in sound:            fmt = encoding + str(sound["bps"]) + "be"        else:            fmt = encoding + "8"        subprocess.call(['ffmpeg', '-hide_banner', '-f', fmt, '-ar', str(sound["rate"]), '-ac', channels, '-i', str(ofile), str(ofileffmpeg)], shell=True)分享編輯跟隨
查看完整描述

2 回答

?
DIEA

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超2個(gè)贊

首先將largest和設(shè)置second_largest為最大元素值(在本例中為第一個(gè)):


largest = nums[0]

second_largest = nums[0]

不幸的是,這意味著表達(dá)式:


nums[i] > largest

nums[i] > second_largest

永遠(yuǎn)不會(huì)成立,因此second_largest永遠(yuǎn)不會(huì)改變其初始(最大)值。


如果您仍然想使用當(dāng)前的方法,這會(huì)更好:


def get_second_largest(nums):

    # Return none if list not big enough.


    if len(nums) < 2: return None


    # Get largest and second largest from first two (possible swap).


    largest = nums[0]

    second_largest = nums[1]

    if largest < second_largest:

        (largest, second_largest) = (second_largest, largest)


    # Process all others.


    for i in range(2, len(nums)):

        if nums[i] > largest:

            (second_largest, largest) = (largest, nums[i])

        elif nums[i] > second_largest:

            second_largest = nums[i]

    return second_largest


print(f"Second largest number is {get_second_largest([8,11,29,25,76,12])}")

除了初始化方式(從前兩個(gè)元素而不僅僅是第一個(gè)元素)之外,該函數(shù)中的大部分代碼都是相同的。


當(dāng)然,更Pythonic的方式是:


def get_second_largest(nums):

    # None if too small, else second last element of sorted items.


    if len(nums) < 2: return None

    return sorted(nums)[-2]

如果您正在學(xué)習(xí)算法,那么冗長(zhǎng)的方法可能會(huì)更好。但是,如果您的目標(biāo)是學(xué)習(xí)Python,那么這個(gè)較短的版本更好,因?yàn)橥ǔW詈弥皇褂迷撜Z(yǔ)言的各個(gè)方面,使您的生活變得更加輕松。


而且,順便說(shuō)一句,您可能需要考慮列表上下文中第二大的含義[3, 3, 2, 1](例如)。


您當(dāng)前的代碼(因此也是我的代碼)指出這3是第二大的,但這可能不一定是最好的定義 - 它可以被認(rèn)為是2(第二大值(沒(méi)有重復(fù))而不是第二大項(xiàng)) 。并不是說(shuō)任何一種方法都是正確的方法,只是說(shuō)您可能需要考慮它。


如果這是您要使用的第二大的定義,則只需使用預(yù)先刪除重復(fù)項(xiàng)的集合即可進(jìn)行輕微修改:


def get_second_largest_no_dupes(nums):

    # De-dupe, then None or second last sorted element.


    num_set = set(nums)

    if len(num_set) < 2: return None

    return sorted(num_set)[-2]


查看完整回答
反對(duì) 回復(fù) 2023-10-26
?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

當(dāng)最大的數(shù)字位于第一位時(shí),您的代碼將不執(zhí)行任何操作。只需將 3d 線更改為:


second_largest = 0

完整代碼:


def get_second_largest(nums):

    largest = nums[0]

    second_largest = min(nums)

    for i in range(1, len(nums)):

        if nums[i] > largest:

            second_largest = largest

            largest = nums[i]

        elif nums[i] > second_largest:

            second_largest = nums[i]

    return second_largest

my_nums = [100,8,11,29,25,76,12]

second_largest = get_second_largest(my_nums)

print("Second largest number is,",second_largest)


76


查看完整回答
反對(duì) 回復(fù) 2023-10-26
  • 2 回答
  • 0 關(guān)注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)