【发布时间】:2017-12-13 00:55:58
【问题描述】:
已经有一段时间了。我目前已经学习了 Python,并且遇到了很多东西,但我不明白为什么,我是 Python 的新手,我正在通过一本书来学习它,但它可能有点过时了。但是,有时我喜欢书籍而不是视频。反正这是个问题
def search_vowels(word):
vowels = set('aeeeiouuu')
return sorted(vowels.intersection(set(word)))
使用这段代码,它基本上有两组,一组称为元音,另一组是传递给函数“search_vowels()”的任何内容
然而有趣的是,当我返回对象时,它会创建一个新的 LIST 而不是 SET。我使用交集函数从单词中查找元音中的公共字符串值,而不是返回一个集合,而是返回列表?谁能解释一下?
我知道我可以通过声明一个来将当前返回的列表设置为一个集合
common = sorted(vowels.intersection(set(word)))
return set(common)
但是为什么它最初不返回一个集合?有什么我不知道的吗?请原谅我的无知,并感谢您提供的任何专业知识。感谢您的宝贵时间。
【问题讨论】:
-
我认为 sorted 返回一个列表。 :) 但是,“排序”只是对项目进行排序
-
发帖前请查看docs。
-
FWIW,集合“通常是无序的”(标准 Python 集合也是如此);而
sorted函数(在所有sequences 中也是通用的)返回一个有序list - 要获得一个有序集,通常必须选择一个specific implementation,并且这必须应用后排序,因为sorted仍将返回一个 list (或以应用“有序集的逻辑”的方式使用)。 -
哇,我应该检查一下文档,我应该养成这个习惯。非常感谢。