python内置函数 L
Python 解释器内置了很多函数和类型,任何时候都能使用。
L
名称 | 描述 |
---|---|
len | 返回对象的长度。 |
list | 返回一个新列表。 |
locals | 返回一个字典,表示当前局部符号表。 |
len(s)
返回对象的长度(元素个数)。实参可以是序列(如 string、bytes、tuple、list 或 range 等)或集合(如 dictionary、set 或 frozen set 等)。
CPython 实现细节: len
对于大于 sys.maxsize
的长度如 range(2 ** 100)
会引发 OverflowError
。
# 字符串
s = "Hello, world!"
print(len(s)) # 输出:13,因为字符串有13个字符
# 元组
tup = (1, 'a', 3.14)
print(len(tup)) # 输出:3,因为元组有3个元素
# 字典
dict_obj = {'a': 1, 'b': 2, 'c': 3}
print(len(dict_obj)) # 输出:3,因为字典有3个键值对
# 不能用于非序列类型的对象,比如整数或浮点数。
num = 123
# print(len(num)) # 这会抛出 TypeError: object of type 'int' has no len()
print(len(str(num))) # 输出:3,因为数字123有3位数
list
class list
class list(iterable)
- 将可迭代对象转换为列表:你可以使用
list()
函数将一个可迭代对象(如元组、字符串、集合等)转换为一个列表。 - 创建空列表:当
list()
函数没有参数时,它会创建一个空列表。
虽然被称为函数,list
实际上是一种可变序列类型,详情请参阅 列表 和 序列类型 — list, tuple, range。
# 创建空列表
lst = list() # lst = []
print(lst) # 输出:[]
# 元组转列表
tup = (1, 2, 3)
lst = list(tup)
print(lst) # 输出:[1, 2, 3]
# 集合转列表
set_obj = {1, 2, 3}
lst = list(set_obj)
print(lst) # 输出:[1, 2, 3](注意:集合是无序的,所以列表中的元素顺序可能与集合中的不同)
# 使用列表推导式创建一个包含 1 到 5 的列表
lst = [i for i in range(1, 6)]
print(lst) # 输出:[1, 2, 3, 4, 5]
locals()
locals()
是一个内置函数,它返回一个字典,表示当前局部符号表。这个字典映射了当前作用域中所有局部变量的名称到它们的值。
更新并返回表示当前本地符号表的字典。 在函数代码块但不是类代码块中调用 locals()
时将返回自由变量。 请注意在模块层级上,locals()
和 globals()
是同一个字典。
备注:不要更改此字典的内容;更改不会影响解释器使用的局部变量或自由变量的值。
def example_function():
x = 10
y = 20
locals_dict = locals()
print(locals_dict) # 输出:{'x': 10, 'y': 20}
example_function()
locals()
返回的字典是实时的,它反映了在调用 locals()
那一刻的局部变量状态。如果在调用 locals()
之后修改了局部变量的值,那么这些修改不会反映在 locals()
最初返回的字典中,除非你再次调用 locals()
。