这是我的代码:
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
制作一个列表,而不是希望将source
与sl
列表中的每个元素分开。
感谢。
答案 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