预期缓冲对象错误在string.translate中——Python 2.6

5

我很乐意为初学者提供帮助,我正在尝试从字符串中删除一些字符,例如:

string1 = "100.000"
deleteList = [",", "."]
string1.translate(None, deleteList)

 print string1

但我收到了一个 TypeError: expected a character buffer object 的错误信息。

为什么会出现这个错误?它指的是哪个参数?我应该在哪里寻求帮助呢?我正在使用 Windows 系统下的 Python 2.6。

2个回答

10

string.translate 的文档说:

S.translate(table [,deletechars]) -> string

这暗示了deletechars应该是一个字符的字符串,而不是一个字符列表:

string1 = "100.000"
string1=string1.translate(None, ',.')
print (string1)
# 100000

1

你收到的错误是关于你的deleteList变量的,它应该是一个字符串。如果你真的需要将字符存储在列表中,你可以这样做:

string1.translate(None, ''.join(deleteList))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接