TypeError:当我拆分时,期望一个字符缓冲区对象#

时间:2013-09-16 14:51:04

标签: python

这是我的代码:

def split_string(source,splitlist):
    sl = list(splitlist)
    new = source.split(sl)
    return new

当我运行它时:

print split_string("This is a test-of the,string separation-code!"," ,!-")

我有以下错误:

new = source.split(sl)
TypeError: expected a character buffer object

我该如何解决这个问题?

注意:首先,我想从splitlist制作一个列表,而不是希望将sourcesl列表中的每个元素分开。

感谢。

3 个答案:

答案 0 :(得分:2)

str.split的参数必须是字符串,而不是list个可能的分隔符。

答案 1 :(得分:1)

我猜你正在寻找像

这样的东西
import re
def multisplit(s, delims):
    delims = '|'.join(re.escape(x) for x in delims)
    return re.split(delims, s)

print multisplit('a.b-c!d', '.-!') # ['a', 'b', 'c', 'd']

str.split不接受分隔符列表,但我希望如此,就像endswith一样。

答案 2 :(得分:0)

您无法使用其他库:

def split_string(source,splitlist):
    ss = list(source)
    sl = list(splitlist)
    new = ''.join([o if not o in sl else ' ' for o in ss]).split()
    return new