You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何用大括号实例化集合保留字符串,而set()函数会拆分字符串?

集合两种创建方式的差异解析

这两种写法的核心区别在于集合的创建逻辑完全不同:

1. 大括号{}直接创建集合

大括号里的每一项(逗号分隔)都是集合的独立成员。当你写{'foo'}时,括号内只有一个元素——完整的字符串'foo',所以集合自然会保留这个完整字符串作为唯一成员。

比如如果写{'foo', 'bar'},集合里就会有两个独立的字符串元素,逻辑完全一致。

2. set()构造函数创建集合

set()的参数要求是一个可迭代对象(比如字符串、列表、元组等),它的工作逻辑是:遍历这个可迭代对象的每一个子元素,把这些子元素作为集合的成员。

而字符串本身就是可迭代对象,遍历'foo'时会逐个取出字符'f'、'o'、'o',再加上集合自动去重的特性,最终就得到了{'f', 'o'}。

如果想通过set()创建包含完整'foo'的集合,需要把字符串放到一个可迭代容器里,比如:

>>> x = set(['foo'])
>>> print(x)
{'foo'}

或者用元组:

>>> x = set(('foo',))
>>> print(x)
{'foo'}

内容的提问来源于stack exchange,提问作者NaiveBae

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 03:24:27