了解python

时间:2019-06-04 05:39:51

标签: python python-3.x

为什么此代码在结果列表中返回3个字符串?

def cat_dog(characters):
    n1 = characters.split('cat')
    print(n1)
    return len(n1)

执行代码时,我得到以下信息。为什么列表中有3个字符串?我正在尝试了解split()方法的工作方式。我希望只看到2个字符串,因为我在'cat'处拆分了字符串'catcat'-不知道为什么拆分后新列表中有3个字符串。

cat_dog('catcat')

['', '', '']

3

2 个答案:

答案 0 :(得分:1)

根据the official documentation

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'被作为分隔符。