python split,为什么我没有看到输出中的所有连字符 输出
我假设空列表项(“”)是连字符。我的问题是,为什么a和b之间的输入中只有两个“”而不是三个 这是默认的split()函数操作 所以基本上如果你把两个角色分开,你总是得到x- 使用指定的分隔符拆分空字符串将返回[“”] 这是默认的split()函数操作 所以基本上如果你把两个角色分开,你总是得到x- 使用指定的分隔符拆分空字符串将返回[“”]python split,为什么我没有看到输出中的所有连字符 输出,python,python-3.x,Python,Python 3.x,我假设空列表项(“”)是连字符。我的问题是,为什么a和b之间的输入中只有两个“”而不是三个 这是默认的split()函数操作 所以基本上如果你把两个角色分开,你总是得到x- 使用指定的分隔符拆分空字符串将返回[“”] 这是默认的split()函数操作 所以基本上如果你把两个角色分开,你总是得到x- 使用指定的分隔符拆分空字符串将返回[“”] 让我们用一些字符串替换空字段: ['', '', '', '', 'a', '', '', 'b', '', 'c', 'd'] test_string=
让我们用一些字符串替换空字段:
['', '', '', '', 'a', '', '', 'b', '', 'c', 'd']
test_string='--a--b--c-d'
现在您可以清楚地看到字段的位置
您可以看到
a
和b
之间只有两个字段。特殊情况是在字符串的开头,开头的空字符串也被视为一个字段。让我们用一些字符串替换空字段:
['', '', '', '', 'a', '', '', 'b', '', 'c', 'd']
test_string='--a--b--c-d'
现在您可以清楚地看到字段的位置
您可以看到
a
和b
之间只有两个字段。特殊情况是在字符串的开头,开头的空字符串也被视为一个字段。str.split
将其参数用作分隔符,因此不会将其包含在返回的列表中
使用re.split(r'-',test_string)
时也是如此,除非将模式放在括号中。因此,如果在拆分字符串时确实希望保留-
,我建议您执行以下操作:
test_string = '<field>-<field>-<field>-<field>-a-<field>-<field>-b-<field>-c-d'
这将打印出:
test_string = '----a---b--c-d'
import re
a = re.split(r'(-)', test_string)
print(a)
test_string = 'cat-dog-bird'
import re
a = re.split(r'(-)', test_string)
print(a)
如果您想知道为什么这个输出中有很多空字符串,那是因为re.split
将保留-
字符之间的任何内容,即使它们是长度为零的字符串
一个简短的例子可能有助于理解发生了什么:
['', '-', '', '-', '', '-', '', '-', 'a', '-', '', '-', '', '-', 'b', '-', '', '-', 'c', '-', 'd']
这将打印出:
test_string = '----a---b--c-d'
import re
a = re.split(r'(-)', test_string)
print(a)
test_string = 'cat-dog-bird'
import re
a = re.split(r'(-)', test_string)
print(a)
如果不需要-
字符,请从r'(-)
中删除括号。也就是说,将r'(-)
更改为r'-'
,或者只使用:
['cat', '-', 'dog', '-', 'bird']
str.split
将其参数用作分隔符,因此不会将其包含在返回的列表中
使用re.split(r'-',test_string)
时也是如此,除非将模式放在括号中。因此,如果在拆分字符串时确实希望保留-
,我建议您执行以下操作:
test_string = '<field>-<field>-<field>-<field>-a-<field>-<field>-b-<field>-c-d'
这将打印出:
test_string = '----a---b--c-d'
import re
a = re.split(r'(-)', test_string)
print(a)
test_string = 'cat-dog-bird'
import re
a = re.split(r'(-)', test_string)
print(a)
如果您想知道为什么这个输出中有很多空字符串,那是因为re.split
将保留-
字符之间的任何内容,即使它们是长度为零的字符串
一个简短的例子可能有助于理解发生了什么:
['', '-', '', '-', '', '-', '', '-', 'a', '-', '', '-', '', '-', 'b', '-', '', '-', 'c', '-', 'd']
这将打印出:
test_string = '----a---b--c-d'
import re
a = re.split(r'(-)', test_string)
print(a)
test_string = 'cat-dog-bird'
import re
a = re.split(r'(-)', test_string)
print(a)
如果不需要-
字符,请从r'(-)
中删除括号。也就是说,将r'(-)
更改为r'-'
,或者只使用:
['cat', '-', 'dog', '-', 'bird']
Python2文档的完整复制和粘贴本可以在注释中链接——除此之外,这是一个Python3问题。为什么要复制文档?关于python2,你有一个观点,在答案的顶部也有一些解释。完整复制和粘贴python2文档,可以在注释中链接-除此之外,还有一个Python3问题。为什么要复制文档?关于python2,你有一个观点,在答案的顶部也有一些解释。