我最近在一個字符上使用了這個sum()功能。list發生錯誤:
TypeError: unsupported operand type(s) for : 'int' and 'str'
我已經開始撰寫一個替換函式,并意識到問題是我已經為輸出初始化了一個變數,0并使用了一個 for 回圈來添加每個元素。這可能是在內置函式中完成的。我已經意識到一個解決方案是將前面提到的輸出變數初始化為type(arr[0])(). 我想問是否有另一個內置函式用于添加串列的所有元素,該串列適用于支持加法運算子的所有資料型別。
感謝您伸出援手!
注意:在help(sum)中明確指出該函式專門用于數值。
uj5u.com熱心網友回復:
我相信functools.reduce()這就是你要找的。
import functools
import operator
functools.reduce(operator.add, ["a", "b"]) # -> "ab"
functools.reduce(operator.add, [1, 2]) # -> 3
PS:如果您查看Python 手冊條目reduce,它們會顯示實作“大致相當于”的內容。請注意默認情況下初始值是第一項本身,從而完全消除了確定其型別的問題。然而,結果是,如果你用一個空串列呼叫它,你必須提供initializer或獲取一個TypeError.
uj5u.com熱心網友回復:
您可以通過將它們轉換為字串來添加所有內容:
things = [1, 3.14, "string", object()]
result = ""
for thing in things:
result = str(thing)
print(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/429207.html
標籤:Python python-3.x 功能 和
