为什么str.split(“”或“,”)没有给出错误?

时间:2019-07-09 01:41:47

标签: python python-3.x

str.split()仅采用一个可选参数作为分隔符。但是,如果我构造如下表达式:

"Hello, you there".split(" " or ", ")

似乎默默无视第二个选择。

2 个答案:

答案 0 :(得分:5)

代码没有传递两个参数,而是一个表达式。在将该值传递给函数之前,每个表达式都将求值为 value

这意味着在计算方括号内的表达式之后,仅剩下一个值。现在,在上述情况下,这有点棘手,因为看起来好像没什么-它实际上是一个空白字符。 or在比较的两个字符串值中选择 first

print(" " or ", ")

因此," " or ", "首先得到 的计算-然后,该计算(<{1)的结果作为参数传递给{{1 }}。

最后,传递了一个单个参数-这就是Python不抱怨错误的原因。您正与" "进行交互,就像您要这样做:传递一个参数作为要考虑的分隔符。

简而言之,这两个表达式是等效的:

split()

答案 1 :(得分:0)

str.split(分隔符或分隔符,maxsplit ),  该函数仅将一个论点作为定界符和最大拆分传递,因为您将两个论题作为定界符传递,并且由于它在python中处于异常状态,因此未显示任何错误。

您首先给定了空格,它只会执行空格。