首页 > 解决方案 > “list”对象没有“lower”属性

问题描述

不知道是什么问题,我想制作一个程序,它接受一行字符串并返回单词及其类型,如“In”函数中所述。

这是代码

def __init__(self):

    self.Action = "Action"
    self.Noun = "Noun"
    self.Shit = "Shit"
    self.Error = "Error"


    ACTION = ["Go","Kill","Jump"]
    NOUN = ["Lion","Building","World"]
    SHIT = ["shit","shit5"]






def Hard_worker(word):
    Action = "Action"
    Noun = "Noun"
    Shit = "Shit"
    Error = "Error"

    raw_data = word.lower()


    if raw_data in Action:
        return(Action,word)
    elif raw_data in Noun:
        return(Noun,word)
    elif raw_data in Shit:
        return(Shit,word)
    else:
        return(Error,word)

def scan(line):
    print"Scanning the line %r" % line

    words = line.split()
    return map(Hard_worker(words))


scan("Go Kill Jump")

任何帮助将不胜感激。

标签: pythonpython-2.7listobjectlowercase

解决方案


return map(Hard_worker(words))

这不是你所说的map。函数和可迭代对象必须是两个参数。

return map(Hard_worker, words)

您也可以在此处使用列表推导。

return [Hard_worker(word) for word in words]

推荐阅读