Python 如何在拆分前拆分字符串并添加元素的字符串位置?

Python 如何在拆分前拆分字符串并添加元素的字符串位置?,python,string,python-3.x,split,position,Python,String,Python 3.x,Split,Position,例如: s=" 300 january 10 20 " mylist = s.split() mylist = ['300', 'january', '10', '20'] 如何创建一个列表,在拆分之前添加元素的字符串位置: mylistStringPos = [['300',startpos:endpos],...] mylistStringPos = [['300',2:5], '['january',12:19]', '['10',25:2

例如:

s="  300       january      10       20     " 
mylist = s.split()
mylist = ['300', 'january', '10', '20']
如何创建一个列表,在拆分之前添加元素的字符串位置:

mylistStringPos = [['300',startpos:endpos],...] 
mylistStringPos = [['300',2:5], '['january',12:19]', '['10',25:27]', '['20',34:36]']]

Python中有什么方法可以做到这一点吗?

您可以使用
re
\S+
模式来匹配文本和访问的非空白块,并收集必要的数据:

import re
s="  300       january      10       20     "
print([[x.group(), x.start(), x.end()] for x in re.finditer(r'\S+', s)])
# => [['300', 2, 5], ['january', 12, 19], ['10', 25, 27], ['20', 34, 36]]

请参见什么类型的
2:5

?它是一个字符串,
'2:5'
?关于
['300',2,5],'一月',12,19],'10',25,27],'20',34,36],
输出呢?很简单:)谢谢WiktorWiktor,最后一个问题:如果我只想在元素之间有两个以上的空格时分割字符串,我必须如何调整finditer regex?使用。或者,如果您只处理行,
r'\S+(?:[^\S\r\n]\S+*”