与python

时间:2016-11-27 10:34:35

标签: python string split

考虑以下示例

a= 'Apple'
b = a.split(',')
print(b)

输出为['Apple']

即使','

中没有Apple个字符,我也不知道为什么会返回一个列表

当我们使用split方法时,我们期望列表中有多个元素,但由于我们基于字符串中不存在的分隔符进行拆分,因此只有一个元素,如果不是更好的话在这种拆分方法本身中发现了这个错误

3 个答案:

答案 0 :(得分:2)

a.split(',')中没有逗号时,a的行为与a中逗号数量为正的行为方式完全一致。

a.split(',')表示将字符串a拆分为','中由a分隔的子字符串列表;分隔符不保留在子字符串中。

如果找到1个逗号,则列表中会有2个子串,如果找到2个逗号,则列表中会有3个子串,一般情况下,如果找到 n 逗号,则会得到列表中的n + 1 个子串。因此,如果找到0个逗号,则会在列表中获得1个子字符串。

如果你想要列表中的0个子串,那么你需要提供一个带有-1个逗号的字符串。祝你好运。 :)

答案 1 :(得分:1)

该方法的文档字符串说:

  

使用sep作为分隔符字符串,返回字符串S中的单词列表。

分隔符用于分隔字符串的多个部分;只有一个部分不是错误。

答案 2 :(得分:0)

这就是split()函数的工作方式。如果您不想要这种行为,可以按如下方式实现my_split()功能:

def my_split(s, d=' '):
    return s.split(d) if d in s else s