【发布时间】:2021-12-30 11:36:43
【问题描述】:
我是 Python 新手(并且具备 Java 的基本知识),目前通过使用 Head First Python, 2nd Edition 书自学它。
在书中的一个例子中,它展示了如何使用 Sets 的 .intersection() 方法。它通过以下方式这样做:
if __name__ == '__main__':
def search_for_vowels(word: str) -> set:
"""Return any vowels found in supplied word."""
vowels = set('aeiou')
return vowels.intersection(set(word))
print(search_for_vowels('hitch-hiker'))
print(search_for_vowels('sky'))
但是,当我自己尝试时,我不小心忘记了上面代码中的“set”部分(在打印语句上方),因此它变成了:
if __name__ == '__main__':
def search_for_vowels(word: str) -> set:
"""Return any vowels found in supplied word."""
vowels = set('aeiou')
return vowels.intersection(word)
print(search_for_vowels('hitch-hiker'))
print(search_for_vowels('sky'))
但是,代码运行时没有任何问题,并返回了正确的输出。这对我来说似乎有点奇怪,因为我会将集合与字符串进行比较,而不是将集合与集合进行比较。因此我的问题是:在执行 Set 的 intersection() 方法时,Python 是否会自动将字符串转换为集合?
提前致谢, 大卫
【问题讨论】:
标签: python set intersection