【发布时间】:2018-09-07 23:24:00
【问题描述】:
Geeks/Nerds/Fellow Pythonists 给我听听!
我在 Python 2.7 中编写了一个使用 set() 函数的脚本。这是一个内置的数据结构,仅用于存储唯一值。但是我在不同的环境中运行脚本。我知道我应该在与生产环境相同的环境中编码。所以在生产环境中有一个古版本的python在运行。据我了解,这是 Python 2.2。此外,这个 Python 解释器运行在一个 Java 虚拟机 (JVM) 上,这使得这个 Jython。很酷。 :) 无论如何,set() 数据结构不包含在这个版本的 Python 中。 我是否可以使用列表创建自己的集合,然后只查找唯一值? 这种类型的算法编写目前已经超出了我的想象。有人可以指出一个有用的方向吗?
运行此代码时,我看到版本是 Python 2.2。
import sys
print sys.version_info
此代码返回:(2, 2, 1, 'final', 0)
我抛出错误的代码是:
machine_set = set() #create a set, an empty set at that
我收到的错误如下:
<me@linuxbox ~>$ java -cp $WEBLOGIC weblogic.WLST lolcats.py
Initializing WebLogic Scripting Tool (WLST) ...
Welcome to WebLogic Server Administration Scripting Shell
Type help() for help on available commands
Problem invoking WLST - Traceback (innermost last):
File "/home/oracle/lolcats.py", line 18, in ?
TypeError: set() takes at least 2 arguments (0 given)
【问题讨论】:
-
我希望你已经找到了离开这个古老的 Jython 的迁移路径。
-
改用字典。设置项成为键,值都是
None。 -
字典键基本上是一个集合。您可以创建一个包含空白值的字典并使用成员资格测试吗?你需要这个套装做什么?
-
Python 2.3-2.7 的
sets库是纯 Python 的,应该与 2.2 兼容,因此您可以将其复制并粘贴到您自己的项目中。 -
@abarnert:只要你尊重许可证。
标签: python jython wlst jython-2.2