筛选器对象没有属性pop

2024-06-02 06:19:07 发布

您现在位置:Python中文网/ 问答频道 /正文

colorramps = re.split("#ramp\[([0-9a-fA-F]{6})\](.+?)#rampend\[([0-9a-fA-F]{6})\]", message)
colorramps.reverse()
if len(colorramps) > 1:
    starttext = colorramps.pop()
    starttext = starttext.replace("$message", getSaveString(text))
    starttext = starttext.replace("$playername", getSaveString(username), 1)
    complete = [starttext]
    while len(colorramps):
        startcolor = getColor(colorramps.pop())
        colors = filter(None, re.split("#over\[([0-9a-fA-F]{6})\]", colorramps.pop()))
        middletxt = colors.pop()
        endcolor = getColor(colorramps.pop())
        middletxt = middletxt.replace("$message", getSaveString(text))
        middletxt = middletxt.replace("$playername", getSaveString(username), 1)
        middletxt = middletxt.decode("utf")
        if len(colors) > 0:
            colors = map(getColor, colors)
            colors.append(endcolor)
            middletxt = rangeOverColors(middletxt, startcolor, colors)
        else:
            middletxt = getRangeString(middletxt, startcolor, endcolor)
        middletxt = middletxt.encode("utf")
        complete.append(middletxt)
        endtext = colorramps.pop()
        endtext = endtext.replace("$message", getSaveString(text))
        endtext = endtext.replace("$playername", getSaveString(username), 1)
        complete.append(endtext)
    message = "".join(complete)
else:
    message = message.replace("$message", getSaveString(text))
    message = message.replace("$playername", getSaveString(username), 1)
return message

大家好! 我进入第128行,在replaceColorRamps middletxt=colors.pop()

AttributeError:“filter”对象没有“pop”属性

我在Python2.5中使用了这段代码,现在我将它移植到3.4。。

有人能帮我吗


Tags: textmessagelenusernamepopreplacefacomplete
1条回答
网友
1楼 · 发布于 2024-06-02 06:19:07

你在Python3中运行这个程序吗?

在Python 2.7中,filter()返回了一个list,它具有.pop()函数。
在Python 3.x中,filter()返回一个不返回的filteriterable对象。

在Python 3中的filter中可以.pop()之前,需要将其转换为列表。所以加上

colors = list(colors) 

colors = filter(...)行之后。在Python2.7中,这不会有任何效果,因此您的代码将继续在那里工作。见this question for more information these docs

相关问题 更多 >