27

我正在尝试学习python,并且正在尝试编写一些简单的东西。我正在使用 OS X 10.8 在 Pydev (Eclipse) 下开发。我使用 64 位 .dmg 安装程序安装了 python 3.2。

我成功配置了 Python 解释器(或者我认为是这样,因为我实际上可以创建一个“hello world”项目并运行它)。但由于某种原因,当我尝试导入 Set ( from sets import Set) 时,出现此错误:

    from sets import Set;
ImportError: No module named sets

我也在命令行上对其进行了测试,并给了我同样的错误。

然后我查看了我的 python3 目录(在 下/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/)中的 lib 文件夹,它缺少 sets.py 文件!!!原来的 2.7 版本确实有/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/

我也尝试将 2.7 sets.py 复制到 3.2,但它都不起作用...请问,你知道我该怎么做吗?

4

3 回答 3

57

您不再需要该sets模块。set是 Python 3 中的内置类,无需导入即可使用。

my_set = set()
于 2012-08-19T16:49:58.170 回答
21

在每个最近的 Python 版本中,集合都是内置的set,Python 3 完全摆脱了不推荐使用的sets模块。

如果您想确保代码也适用于古代版本,您可以执行以下操作:

try:
    set
except NameError:
    from sets import Set as set

如果您需要运行旧代码并且不想更改它(不好!):

try:
    from sets import Set
except ImportError:
    Set = set
于 2012-08-19T16:50:10.647 回答
1

你不需要使用

from sets import Set
engineers = Set(['John', 'Jane', 'Jack', 'Janice'])

自 2.6 版起已弃用上述内容:

您可以在 2.6 版本以上使用以下代码

engineers = set(['John', 'Jane', 'Jack', 'Janice'])
programmers = set(['Jack', 'Sam', 'Susan', 'Janice'])
managers = set(['Jane', 'Jack', 'Susan', 'Zack'])
employees = engineers | programmers | managers  
print(employees)
于 2016-06-26T18:58:24.900 回答