我正在尝试学习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,但它既不起作用...... 拜托,你知道我该怎么做吗?
答案 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)