为什么此代码在结果列表中返回3个字符串?
def cat_dog(characters):
n1 = characters.split('cat')
print(n1)
return len(n1)
执行代码时,我得到以下信息。为什么列表中有3个字符串?我正在尝试了解split()
方法的工作方式。我希望只看到2个字符串,因为我在'cat'处拆分了字符串'catcat'-不知道为什么拆分后新列表中有3个字符串。
cat_dog('catcat')
['', '', '']
3
答案 0 :(得分:1)
string.split(s[, sep[, maxsplit]])
:“如果存在第二个参数sep而不是None,则它指定要用作单词分隔符的字符串。”
因此,characters.split('cat')
将返回一个数组,其中该字符串由单词cat
替换。如果您拨打"1cat2cat3".split('cat')
,则会得到["1", "2", "3"]
。
在您的情况下,字符串“ catcat”可以表示为'' + 'cat' + '' + 'cat' + ''
,因此'catcat'.split('cat')
将返回['', '', '']
。
答案 1 :(得分:1)
python documentation 应该回答您的问题。
在这里引用:
“ ...定界符...被视为定界空字符串(例如'1,,2'.split(',')
返回['1', '', '2']
)。“
在您的情况下,字符串'catcat'
被视为'<empty_str>cat<empty_str>cat<empty_str>'
,而'cat'
被作为分隔符。