2024-06-02 01:44:04 发布
网友
返回'/segment/segment/'.split('/')的目的是什么?
'/segment/segment/'.split('/')
注意空元素。如果您拆分的分隔符恰好位于字符串的第一个位置和最末端,则从每一端返回空字符串会给您带来什么额外的值?
这里有两点需要考虑:
['segment', 'segment']
split()
a.split('/') == ['segment', 'segment']
a
['a', 'b']
['a', '', 'b']
最后,可以归结为两件事:
一致性:如果我有n分隔符,在a中,我在split()之后得到n+1值。
n
n+1
应该可以做一些复杂的事情,也可以做一些简单的事情:如果您想忽略由于split()而导致的空字符串,您可以始终执行以下操作:
def mysplit(s, delim=None): return [x for x in s.split(delim) if x]
但是如果不想忽略空值,那么应该能够忽略。
语言必须选择split()的一个定义-有太多不同的用例来满足每个人的默认需求。我认为Python的选择是一个很好的选择,而且是最合乎逻辑的。(顺便说一句,我不喜欢C的原因之一是它合并了相邻的分隔符,使得很难对它进行认真的解析/标记化。)
有一个例外:没有参数的a.split()会挤压连续的空格,但是可以说在这种情况下这样做是正确的。如果你不想要这种行为,你可以总是a.split(' ')。
a.split()
a.split(' ')
str.split是对str.join的补充,所以
str.split
str.join
"/".join(['', 'segment', 'segment', ''])
让你回到原来的字符串。
如果没有空字符串,则第一个和最后一个'/'将在join()之后丢失
'/'
join()
一般来说,要删除在split()结果中返回的空字符串,您可能需要查看^{}函数。
示例:
filter(None, '/segment/segment/'.split('/'))
回报
这里有两点需要考虑:
'/segment/segment/'.split('/')
的结果等于['segment', 'segment']
是合理的,但是这样会丢失信息。如果split()
按你想要的方式工作,如果我告诉你a.split('/') == ['segment', 'segment']
,你就不能告诉我a
是什么。['a', 'b']
?,或['a', '', 'b']
?一、 例如,应该split()
合并相邻的分隔符吗?如果应该这样做,那么将很难解析由字符分隔的数据,并且某些字段可以为空。我敢肯定有很多人想在上述情况下得到结果中的空值!最后,可以归结为两件事:
一致性:如果我有
n
分隔符,在a
中,我在split()
之后得到n+1
值。应该可以做一些复杂的事情,也可以做一些简单的事情:如果您想忽略由于
split()
而导致的空字符串,您可以始终执行以下操作:但是如果不想忽略空值,那么应该能够忽略。
语言必须选择
split()
的一个定义-有太多不同的用例来满足每个人的默认需求。我认为Python的选择是一个很好的选择,而且是最合乎逻辑的。(顺便说一句,我不喜欢C的原因之一是它合并了相邻的分隔符,使得很难对它进行认真的解析/标记化。)有一个例外:没有参数的
a.split()
会挤压连续的空格,但是可以说在这种情况下这样做是正确的。如果你不想要这种行为,你可以总是a.split(' ')
。str.split
是对str.join
的补充,所以让你回到原来的字符串。
如果没有空字符串,则第一个和最后一个
'/'
将在join()
之后丢失一般来说,要删除在} 函数。
split()
结果中返回的空字符串,您可能需要查看^{示例:
回报
相关问题 更多 >
编程相关推荐