Python 如何进行二维str分割
我有一个字符串看起来像(请注意我给出的范围是1.1到1.3) 我想要一个二维数组,看起来像Python 如何进行二维str分割,python,python-3.x,Python,Python 3.x,我有一个字符串看起来像(请注意我给出的范围是1.1到1.3) 我想要一个二维数组,看起来像 [1][1], [1][2] , <== range is filled now [1][3] , [1][5], [2][5], [1][1], [1] [2],想法: 删除所有空格:'1.1-1.3、1.5、2.5' 用逗号拆分输入:'1.1-1.3,1.5,2.5' 将它们解析为数字或范围:[(1,1,1,3)、(1,5)、(2,5)] 生成数据并将其附加到列表中:[[1,1],[1,2],
[1][1],
[1][2] , <== range is filled now
[1][3] ,
[1][5],
[2][5],
[1][1],
[1] [2],想法:
删除所有空格:'1.1-1.3、1.5、2.5'
用逗号拆分输入:'1.1-1.3,1.5,2.5'
将它们解析为数字或范围:[(1,1,1,3)、(1,5)、(2,5)]
生成数据并将其附加到列表中:[[1,1],[1,2],[1,3],[1,5],[2,5]]
代码:
到目前为止,我们做了哪些尝试?
[1][1],
[1][2] , <== range is filled now
[1][3] ,
[1][5],
[2][5],
import re
s = '1.1 -1.3 ,1.5, 2.5'
items = s.replace(' ', '').split(',')
result = []
for item in items:
v = list(map(
lambda x: int(x) if x else None,
re.match(r'(\d+).(\d+)(?:-(\d+).(\d+))?', item).groups()
))
if not v[2]:
result.append(v[:2])
else:
result.extend([[v[0], i] for i in range(v[2], v[3] + 1)])
print(result)