我不精通python ...我的教授发布了一段代码,其中包括以下几行:
def formatOptions(options):
from string import joinfields, strip, split
options = joinfields(map(strip, split(strip(options), '\n')), ':')
return options
当我使用空闲2.7运行此程序时,没有收到错误消息。但是当我使用python 3运行它时,我收到一条错误消息。这是两个版本的区别,还是python 3版本有问题?这是错误消息:
File "ml_exercise.py", line 46, in <module>
formatOptions(options))
File "ml_exercise.py", line 28, in formatOptions
from string import joinfields, strip, split
ImportError: cannot import name 'joinfields'
答案 0 :(得分:1)
joinfields
从Python 3版本中删除。只需使用字符串join
函数,如:
options = ':'.join(map(strip, split(strip(options), '\n')))
答案 1 :(得分:1)
string
函数在Python 1.6.0(大约18年前)中已被弃用(推荐使用str
类方法)。编写此代码的惯用方式是
options = ':'.join(part.strip() for part in options.strip().splitlines())