1

这是我的代码:

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

谢谢。

4

3 回答 3

2

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

于 2013-09-16T14:56:40.143 回答
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.

于 2013-09-16T14:57:43.020 回答
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
于 2013-09-16T15:02:03.467 回答