python内置函数 L

本文详细介绍了Python中的内置函数len()、list()以及locals(),包括它们的作用、用法示例和实现细节,特别强调了len函数对不同类型对象的处理以及locals()在获取当前作用域局部变量的动态映射。
摘要由CSDN通过智能技术生成

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)

  1. 将可迭代对象转换为列表:你可以使用 list() 函数将一个可迭代对象(如元组、字符串、集合等)转换为一个列表。
  2. 创建空列表:当 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()

参考:内置函数 — Python 3.12.2 文档

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

棠越

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值