Python - 无法从集合中导入Set(“没有名为sets的模块”)

时间:2012-08-19 16:46:11

标签: python import module

我正在尝试学习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目录下的lib文件夹(在/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/下),它缺少sets.py文件!最初的2.7版本确实在/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/

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

3 个答案:

答案 0 :(得分:31)

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

my_set = set()

答案 1 :(得分:17)

在每个最近的python版本中,集合都内置为set,Python 3完全删除了已弃用的sets模块。

如果你想确保代码也适用于古代版本,你可以做这样的事情:

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

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

try:
    from sets import Set
except ImportError:
    Set = set

答案 2 :(得分:0)

您不需要使用

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)