亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何在不使用任何導入或 sum 函數的情況下對嵌套列表中的列值求和?

如何在不使用任何導入或 sum 函數的情況下對嵌套列表中的列值求和?

倚天杖 2022-11-01 16:05:06
我被要求在嵌套列表的每一列中找到第一個值的總和。如何在不使用導入或 sum 函數的情況下執行此操作? def column_sums(square):    """Returns the sum of the columns"""    result = []    i = 0    for element in square:        n = 0        for item in element:            if item == element[n]:                i = i + item        n = n + 1    result.append(i)    i = 0    return resultsquare = [    [1, 2, 3, 4],    [5, 6, 7, 8],    [9, 10, 11, 12],    [13, 14, 15, 16]]print(column_sums(square))這是我想出的,但它只返回第一列的值。我怎樣才能得到這樣列出的所有列的總和?:[28, 32, 36, 40]
查看完整描述

3 回答

?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

對于沒有任何內置函數的純循環方法:


def column_sums(square):

    result = [0] * len(square[0])

    for row in square:

        for i in range(len(result)):

            result[i] += row[i]

    return result

以下使用zip(*...)換位模式:


def column_sums(square):

    result = []

    for col in zip(*square):

        total = 0

        for num in col:

            total += num

        result.append(total)

    return result


square = [

    [1, 2, 3, 4],

    [5, 6, 7, 8],

    [9, 10, 11, 12],

    [13, 14, 15, 16]

]

print(column_sums(square))

# [28, 32, 36, 40]

請注意,您通過壓縮行來獲取列。如果您可以使用sum和所有其他內置插件,以下將是最短的:


print(list(map(sum, zip(*square))))


查看完整回答
反對 回復 2022-11-01
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

在這里,您可以使用我想到的最簡單的溶膠,而無需使用任何花哨的東西。


def column_sums(square):

    """Returns the sum of the columns"""


    result = [0,0,0,0]

    for element in square:


        for i,item in enumerate(element):

                result[i] = result[i] + item   

    return result


查看完整回答
反對 回復 2022-11-01
?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

用這個:


def column_sums(square):

    result = dict.fromkeys(len(square), 0)

    for i, v in enumerate(zip(*square)):

        for x in v:

            result[i] += x

    return result


square = [

    [1, 2, 3, 4],

    [5, 6, 7, 8],

    [9, 10, 11, 12],

    [13, 14, 15, 16]

]

print()

或者sum你實際上可以使用:


square = [

    [1, 2, 3, 4],

    [5, 6, 7, 8],

    [9, 10, 11, 12],

    [13, 14, 15, 16]

]

print(column_sums(square))


查看完整回答
反對 回復 2022-11-01
  • 3 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號