獲取 Python 陣列的長度
如何檢查物件的長度因一種程式語言而異。雖然一些程式設計師可能會選擇使用 count()
方法,其他人可能會選擇 .length()
方法或使用 .length
屬性來查詢長度。
或者,Python 提供了 len()
函式和 __len__()
方法來查詢長度。我們將看看這兩者如何相互關聯,以及如何使用此函式和方法找到物件的長度。
使用 len()
函式獲取 Python 陣列的長度
len()
是一個 Python 內建函式,它在元組、佇列、陣列、列表和字串等物件上呼叫,以在這些物件中查詢單詞或字元的總數。
另一方面,__len__()
是一種標準化的魔法方法(dunder 方法,方法名前有兩個下劃線,方法名後有兩個下劃線),用於返回長度。
如果要查詢物件的長度,請通過將物件作為引數傳遞給 len()
來呼叫 len()
函式。隱式地,Python 對傳遞的物件呼叫 __len__()
方法來查詢其長度。換句話說,python 在內部將 len(object)
翻譯成 object.__len__()
。
因此,不是直接在物件上呼叫 __len__()
,而是在 Python 中首選在物件上呼叫 len()
函式。這是因為 Python 中程式碼的一致性。
當你呼叫 len()
函式時,你可以確保在呼叫執行期間不會引發異常,因此程式會在呼叫後繼續執行。當使用 __len__()
方法時,情況正好相反。不確定在執行函式呼叫時程式是否會丟擲異常。這種確定性就是我們在 Python 中所說的健全性檢查
。
我們也同意在物件上呼叫 len()
比直接使用 __len__()
更具可讀性。
在這種情況下,要查詢陣列的長度,將按如下方式實現:
fruits = ['mango', 'kiwi', 'grape', 'melon']
arr_length = len(fruits)
print(arr_length)
上面的例子定義了一個水果陣列。要找到水果陣列的總長度,請定義一個變數,將陣列傳遞給 len()
函式。列印變數以查詢長度。
輸出:
4
該陣列共返回四個水果。
len()
還具有函式性質,允許它以不同的函式風格實現,如下所示;
length = map(len, list_of_objects)
例子:
a_list = [[1],[3, 5, 7], [2, 4, 6, 8, 10]]
print(map(len, a_list)))