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

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

输出为
{3, 1, 2, 'hello'}

或者类似的东西,因为集合没有顺序。
但我的观点是,当我试图到达列表的第一个元素时,就像在使用my list[0]的值创建集合时
wordlist = ['hello',1,2,3]
wordSet = set(wordlist[0])

我原以为产量是
{'hello'}

但是相反,我得到
{'l', 'o', 'h', 'e'}

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

最佳答案

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

set([worldlist[0]])

或者,更直接地说,使用花括号:
{worldlist[0]}

关于python - Python设置异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51366543/

10-12 13:18