在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()
新闻热点
疑难解答