Python中是否可以使用大括号创建frozenset对象?
关于frozenset创建方式的问题解答
核心结论
该说法完全准确,Python目前没有提供任何frozenset的字面量创建语法,所有frozenset对象都只能通过frozenset()构造函数创建。
补充说明
- 普通可变set支持
{元素1, 元素2}的字面量写法,但frozenset没有对应的专属语法,任何类似f{1,2,3}的写法都会被Python解析器判定为语法错误。 - 如果需要创建包含指定元素的frozenset,只能将可迭代对象作为参数传入构造函数,示例写法:
# 从列表创建 fs1 = frozenset([1, 2, 3]) # 从普通set创建 fs2 = frozenset({1, 2, 3}) # 创建空frozenset fs_empty = frozenset() - Python社区曾多次提案新增frozenset字面量语法,但都未被正式采纳,核心原因是frozenset的日常使用频率远低于list、dict、set等常用结构,新增专用字面量带来的便利性提升,不足以抵消语法复杂度上升带来的维护成本。
内容的提问来源于stack exchange,提问作者Ray Salemi
相关产品推荐
相关产品推荐

