在Python中,len()函數用于獲取對象的長度,即對象中項(items)的數量。
len()函數操作的對象可以是序列(如字符串,字節,元組,列表或range),也可以是集合(如字典、集合或不可變集合)。
如果len()函數操作的對象長度超過了 sys.maxsize (Python中整型數據的最大值,在32位平臺中,其值通常為: 231 - 1 ,在64位平臺中,其值通常為: 263 - 1 )。
len(s)
該函數的參數s可以是一個序列對象(如字符串、字節(bytes)、元組、列表或range),也可以是一個集合對象(如字典(dict)、集合(set)或不可變集合)。
該函數的返回值是一個整型數據,表示對象的長度(元素或項的個數)。
具體看下面各個例子:
# 序列對象
print('字符串長度:',len("大美中國")) #字符串
print("列表長度:", len(["C","C#","R"])) #列表
print("元組長度:", len((1,2,3,4))) #元組
print("字節長度:", len(bytes('優雅的代碼','utf-8'))) #字節
print("range對象:", len(range(50,100))) #range對象
輸出結果:
字符串長度: 4
列表長度: 3
元組長度: 4
字節長度: 15
range對象: 50
# 集合對象
dict1 = {"id":"123","name":"李蘭","gender":"female"}
print("字典長度:", len(dict1)) #字典
print("集合長度:", len(set([1,2,3,5]))) #集合
print("不可變集合長度:",
len(frozenset([2,4,6,8,10]))) #不可變集合
輸出結果:
字典長度: 3
集合長度: 4
不可變集合長度: 5
len()函數作用于對象時,調用對象的內部函數__len__()來實現其功能,因此,如果我們在任何對象內部定義了__len__()函數的話,都可以使用len()函數作用于該對象上。
下面使用一個例子來說明其原理:
#作用于自定義對象
class Student:
studentId = ''
studentCnt = 0
def __len__(self):
return self.studentCnt
def __init__(self):
Student.studentCnt += 1
stu1 = Student()
print(len(stu1))
stu2 = Student()
print(len(stu2))
輸出結果如下:
1
2
如果在Student類中刪除__len__()函數的定義,則會引發如下異常:
TypeError: object of type 'Student' has no len()
新聞熱點
疑難解答