Python集异常

2024-04-18 22:10:43 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图从列表中获取值时,我试图理解集合是如何工作的。 所以当我在底部运行代码时

wordlist = ['hello',1,2,3]
wordSet = set(wordlist)

输出为

{3, 1, 2, 'hello'}

或者类似的东西,因为set没有顺序。 但我的观点是,当我尝试访问列表的第一个元素时,就像在使用myList[0]的值来创建集合时一样

wordlist = ['hello',1,2,3]
wordSet = set(wordlist[0])

我希望输出是

{'hello'}

但是相反,我

{'l', 'o', 'h', 'e'}

或者是随机化的风格。 我的观点是,当我把我的列表直接放在set函数中时,它使用整个列表来创建一个集合,但是当我想创建一个只使用列表中第一个元素的集合时,它会将我的字符串分割成字符。 为什么会这样


Tags: 函数字符串代码元素hello列表顺序风格
2条回答

对对象调用set将迭代该对象。字符串是可编辑的,产生单个字符。如果希望集只包含wordlist的第一个元素,则需要使用只包含该元素的iterable:

set([worldlist[0]])

或者,更直接地说,使用大括号:

{worldlist[0]}

'hello'这样的字符串是iterable的set()将iterables转换为集合

为了澄清

set(('1', '1', '2', '3')) == {'1', '2', '3'}
set(['1', '1', '2', '3']) == {'1', '2', '3'}
set('1123') == {'1', '2', '3'}

相关问题 更多 >