python中len
在Python编程语言中,len是一个内置函数,用于获取对象的长度,它通常用于计算字符串、列表、元组等序列类型的长度,len函数的语法非常简单,只需要将要计算长度的对象作为参数传递给它即可。
(图片来源网络,侵删)
len函数的基本用法
1、计算字符串长度
字符串是Python中最常见的序列类型之一,我们可以通过len函数来计算字符串的长度。
s = "Hello, World!" length = len(s) print(length) # 输出:13
2、计算列表长度
列表是Python中另一个常见的序列类型,我们可以使用len函数来计算列表的长度。
lst = [1, 2, 3, 4, 5] length = len(lst) print(length) # 输出:5
3、计算元组长度
元组与列表类似,也是Python中的序列类型,我们可以使用len函数来计算元组的长度。
tup = (1, 2, 3, 4, 5) length = len(tup) print(length) # 输出:5
len函数的高级用法
1、计算多维列表或元组的长度
对于多维列表或元组,我们可以使用递归的方式来计算其长度。
计算二维列表的长度 matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] def get_matrix_length(matrix): if isinstance(matrix, list): return sum(get_matrix_length(row) for row in matrix) else: return len(matrix) length = get_matrix_length(matrix) print(length) # 输出:9 计算嵌套元组的长度 nested_tuple = (1, (2, (3, 4), 5), 6) def get_nested_tuple_length(nested_tuple): if isinstance(nested_tuple, tuple): return sum(get_nested_tuple_length(item) for item in nested_tuple) else: return len(nested_tuple) 1 length = get_nested_tuple_length(nested_tuple) print(length) # 输出:3
2、计算文件行数
我们可以使用len函数来计算文件中的行数,假设我们有一个名为"example.txt"的文件,内容如下:
Hello, World! This is a test file.
我们可以使用以下代码来计算文件中的行数:
with open("example.txt", "r") as f: lines = f.readlines() line_count = len(lines) 1 # 减1是因为最后一行是空行(换行符) print(line_count) # 输出:2
len函数的注意事项
1、len函数只能用于序列类型,不能用于其他类型的对象,如果尝试对非序列类型的对象使用len函数,Python会抛出TypeError异常。
num = 1234567890 try: length = len(num) except TypeError as e: print(e) # 输出:'int' object is not iterable
2、len函数返回的是序列中元素的个数,而不是序列所占用的字节数,如果需要计算序列所占用的字节数,可以使用sys模块中的getsizeof函数。
import sys lst = [1, 2, 3, 4, 5] size = sys.getsizeof(lst) + sum(sys.getsizeof(x) for x in lst) * len(lst) sys.getsizeof(None) * len(lst) sys.getsizeof(list) * len(lst) + sys.getsizeof(tuple) * len(lst) sys.getsizeof(()) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * len(lst) sys.getsizeof((1,)) * len(lst) + sys.getsizeof((1,)) * length sys.getsizeof((1