为什么这个return语句返回一个列表而不是一个set?

时间:2017-12-13 00:55:59

标签: python list set return

已经有一段时间了。我现在已经选择了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)

但为什么它最初没有返回一套?有什么东西我不知道吗?请原谅我的无知,并感谢您提供的任何专业知识。谢谢你的时间。

1 个答案:

答案 0 :(得分:2)

sorted始终返回一个列表。它接受任何类型的iterable并返回已排序值的列表。以下是使用sorted时在python IDLE中得到的提示:

sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list