考虑以下示例
a= 'Apple'
b = a.split(',')
print(b)
输出为['Apple']
。
即使','
Apple
个字符,我也不知道为什么会返回一个列表
当我们使用split方法时,我们期望列表中有多个元素,但由于我们基于字符串中不存在的分隔符进行拆分,因此只有一个元素,如果不是更好的话在这种拆分方法本身中发现了这个错误
答案 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