是python str.split()不一致吗?
>>> ".a string".split('.') ['','a string'] >>> "a .string".split('.') ['a ','string'] >>> "a string.".split('.') ['a string',''] >>> "a ... string".split('.') ['a ','',' string'] >>> "a ..string".split('.') ['a ','string'] >>> 'this is a test'.split(' ') ['this','is','a','test'] >>> 'this is a test'.split() ['this','test'] 当被调用的字符串只有空格作为空格时,为什么split()与split(”)不同? 为什么拆分(‘.’)将“…”拆分为[”,”]? split()不考虑2个分隔符之间的空字…… 文档对此很清楚(参见下面的@agf),但我想知道为什么这是选择的行为. 我查看了源代码(here),思路136应该小于:… i< str_len ... 解决方法
见
str.split docs,具体提到了这个行为:
Python试图做你期望的事情.大多数人都不会想太多 '1 2 3 4 '.split() 回来 ['1','3','4'] 考虑分割使用空格而不是制表符来创建固定宽度列的数据 – 如果数据宽度不同,则每行中将有不同数量的空格. 在一行的末尾经常有一些你看不到的尾随空格,默认也忽略它 – 它给你你在视觉上期望的答案. 对于指定分隔符时使用的算法,请考虑CSV文件中的行: 1,3 表示第1列和第3列中有数据,第2列中没有数据,因此您需要 '1,3'.split(',') 回来 ['1','3'] 否则你将无法分辨每个字符串来自哪个列. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |