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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我的列表比較器不想按照我想要的方式運(yùn)行

我的列表比較器不想按照我想要的方式運(yùn)行

慕田峪9158850 2023-10-06 18:31:14
我是 python 的初學(xué)者,我有一個任務(wù),winner_round 函數(shù)比較兩個列表,并計(jì)算 Adam 的團(tuán)隊(duì)比對手得分更多的游戲中有多少輪。如果兩個列表不匹配,則返回 -1 這是我的代碼:def winner_round(list1,list2):    list1 = [30, 50, 10, 80, 100, 40]    list2 = [60, 20, 10, 20, 30, 20]    point = 0    for i in winner_round(list1,list2):        if list1>list2:            return -1            print(-1)    for pointA in list1:        for pointE in list2:            if pointA > pointE:                point+=1        break    return(point)    print(point)對不起我的英語不好
查看完整描述

4 回答

?
呼如林

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個贊

返回的唯一原因-1是列表的大小是否不同;len在進(jìn)行迭代之前,您可以使用 O(1) 操作進(jìn)行檢查。


之后,只需對列表項(xiàng)進(jìn)行逐點(diǎn)比較即可。假設(shè)list1是亞當(dāng)和list2他的對手,


def winner_round(list1, list2):

    if len(list1) != len(list2):

        return -1


    return sum(x > y for x, y in zip(list1, list2))

zip(list1, list2)生成對(30, 60),(50, 20)等。因?yàn)門rue == 1和False == 0(bool是 的子類int),您可以簡單地對結(jié)果求和,其中的值list1是一對中的較大值。


(您還可以使用map,因?yàn)樽鳛榈谝粋€參數(shù)的 2 參數(shù)函數(shù)允許您將兩個列表作為第二個和第三個參數(shù)傳遞,從而無需對實(shí)例進(jìn)行更明確的迭代。提供您需要的zip函數(shù)operator.gt:


return sum(map(operator.lt, list1, list2))

哪一個“更好”是個人喜好的問題。)


查看完整回答
反對 回復(fù) 2023-10-06
?
蠱毒傳說

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個贊

逐項(xiàng)比較,如果大于則加1point


list1 = [30, 50, 10, 80, 100, 40]

list2 = [60, 20, 10, 20, 30, 20]


def winner_round(list1,list2):

  point = 0


  if len(list1)!=len(list2):

    return -1


  for i in range(len(list1)):

      if list1[i] > list2[i]:

          point+=1

  return point


查看完整回答
反對 回復(fù) 2023-10-06
?
慕尼黑8549860

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個贊

積分總和:


list1 = [30, 50, 10, 80, 100, 40]

list2 = [60, 20, 10, 20, 30, 20]


def winner_round(list1,list2):

    if sum(list1) > sum(list2):

        return 1

    else:

        return 2

比較每輪:


list1 = [30, 50, 10, 80, 100, 40]

list2 = [60, 20, 10, 20, 30, 20]


def winner_round(list1,list2):

    if len(list1) != len(list2): return -1

    score1, score2 = 0

    for i in range(list1):

        if list1[i] > list2[i]:

            score1 +=1

        else:

            score2 +=1

    if score1 > score2:

        return 1

    else:

        return 2


查看完整回答
反對 回復(fù) 2023-10-06
?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個贊

這將是我對你的問題的解決方案:


    def get_points(teamA,teamB):

    if len(teamA)!=len(teamB):

        print("Both lists have to be of same length.")

        return -1

    points=0

    for i in range(len(teamA)):

        if teamA[i]>teamB[i]:

            points+=1


    print("points:",points)

    return points


我首先檢查兩個列表是否具有相同的長度,然后循環(huán)遍歷兩個列表,如果一個列表大于另一個列表,則增加一個計(jì)數(shù)器。(順便說一句,您嘗試在 return 語句之后打印一些內(nèi)容,該語句存在該函數(shù))希望有幫助,拉爾斯


查看完整回答
反對 回復(fù) 2023-10-06
  • 4 回答
  • 0 關(guān)注
  • 200 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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