split()方法有点不理解
以下三个示例的区别在于love和coding之间的空格数>>> coding_journey = "I love coding" # 一个空格
>>> coding_journey_split = coding_journey.split(" ")
>>> coding_journey_split
['I', 'love', 'coding'] # 可以理解
>>> coding_journey = "I lovecoding" # 两个空格
>>> coding_journey_split = coding_journey.split(" ")
>>> coding_journey_split
['I', 'love', '', 'coding'] # 不能理解,为何两个空格只有一个''
>>> coding_journey = "I love coding" # 三个空格
>>> coding_journey_split = coding_journey.split(" ")
>>> coding_journey_split
['I', 'love', '', '', 'coding'] # 不能理解,为何三个空格只有两个'' 这个现象是因为在`split()`方法中,你指定了一个空格(`" "`)作为分隔符。以下是三个示例的详细解释:
1. 一个空格的情况:
在这个示例中,字符串`"I love coding"`只包含一个空格作为单词之间的分隔符。当使用`split(" ")`时,它会将字符串分割成一个列表,其中每个元素是由空格分隔的单词。这就是为什么你得到的结果是`['I', 'love', 'coding']`。
2. 两个空格的情况:
在这个示例中,字符串`"I lovecoding"`包含两个连续的空格作为单词之间的分隔符。当使用`split(" ")`时,它会将字符串分割成一个列表,其中每个元素是由空格分隔的单词。但是,因为有两个连续的空格,这意味着在`love`和`coding`之间还有一个空字符串。因此,你得到的结果是`['I', 'love', '', 'coding']`。
3. 三个空格的情况:
在这个示例中,字符串`"I love coding"`包含三个连续的空格作为单词之间的分隔符。当使用`split(" ")`时,它会将字符串分割成一个列表,其中每个元素是由空格分隔的单词。因为有三个连续的空格,这意味着在`love`和`coding`之间有两个空字符串。所以你得到的结果是`['I', 'love', '', '', 'coding']`。
总结:每当你在`split(" ")`方法中使用一个空格作为分隔符时,多余的空格会被识别为一个空字符串。所以,每增加一个连续的空格,你会得到一个额外的空字符串。 本帖最后由 lzb1001 于 2023-4-26 02:13 编辑
isdkz 发表于 2023-4-26 01:56
这个现象是因为在`split()`方法中,你指定了一个空格(`" "`)作为分隔符。以下是三个示例的详细解释:
...
以下用数字代替空格:
I1love23coding
用空格拆分上面的内容,不应该是下面这样吗?
['I', 'love', '3coding’]
因为3(空字符串)和coding之间并无空格啊
不知我表达得是否清楚?大神明白我的疑惑吗?
以下面这个为例:
2. 两个空格的情况:
在这个示例中,字符串`"I lovecoding"`包含两个连续的空格作为单词之间的分隔符。当使用`split(" ")`时,它会将字符串分割成一个列表,其中每个元素是由空格分隔的单词。但是,因为有两个连续的空格,这意味着在`love`和`coding`之间还有一个空字符串。因此,你得到的结果是`['I', 'love', '', 'coding']`。
`love`和`coding`之间还有一个空字符串,但这个空字符串与coding之间并没有空格,所以它不应该是和coding连在一起返回才对即:['I', 'love', ' coding']吗?
本帖最后由 isdkz 于 2023-4-26 02:16 编辑
lzb1001 发表于 2023-4-26 02:08
以下用数字代替空格:
I1love23coding
中间有两个空格:
I1love2空字符3coding
中间有三个空格:
I1love2空字符3空字符4coding 本帖最后由 lzb1001 于 2023-4-26 02:25 编辑
isdkz 发表于 2023-4-26 02:15
中间有两个空格:
I1love2空字符3coding
大神抱歉,我好像还是没看懂和理解呢
中间有两个空格:
I love空格1空格2coding # 空格2作为空字符串,和coding连接在一起,中间并无空格,所以不应该返回下面吗?
['I', 'love',' coding'] # coding前面有一个空字符串
能明白我的不解或困惑吗?
lzb1001 发表于 2023-4-26 02:22
大神抱歉,我好像还是没看懂和理解呢
1. 中间有两个空格的情况:
在这个例子中,字符串结构如下:
I<空格1>love<空格2><空格3>coding
我们使用一个空格作为分隔符。当我们遇到第一个空格时,它将"I"和"love"分开。然后遇到第二个空格,它将"love"和后面的内容分开。但是,在第二个和第三个空格之间,实际上没有任何字符,因此它被认为是一个空字符串。最后遇到第三个空格,它将空字符串和"coding"分开。所以,结果是:
['I', 'love', '', 'coding']
2. 中间有三个空格的情况:
在这个例子中,字符串结构如下:
I<空格1>love<空格2><空格3><空格4>coding
我们同样使用一个空格作为分隔符。当我们遇到第一个空格时,它将"I"和"love"分开。然后遇到第二个空格,它将"love"和后面的内容分开。但是,在第二个和第三个空格之间,实际上没有任何字符,因此它被认为是一个空字符串。紧接着遇到第三个空格,它将这个空字符串和后面的内容分开。再次,在第三个和第四个空格之间没有任何字符,所以又产生了一个空字符串。最后遇到第四个空格,它将这个空字符串和"coding"分开。因此,结果是:
['I', 'love', '', '', 'coding']
总之,每当我们使用一个空格作为分隔符时,如果有连续的空格,它们之间会产生空字符串。 isdkz 发表于 2023-4-26 02:27
1. 中间有两个空格的情况:
在这个例子中,字符串结构如下:
哦,原来是这样,不存在的是空字符串
感谢大神
页:
[1]