python 3定义问题导入字符串模块

时间:2018-10-31 14:59:57

标签: python string python-3.x python-2.7

我不精通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'

2 个答案:

答案 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())