【发布时间】:2017-09-22 19:28:01
【问题描述】:
我试图在有一个完整的 2 位数字被空格包围的地方之前拆分字符串。最终我希望它可以在 Python 中工作,但我一直在使用 sed 进行工作,但我无法弄清楚。
我的测试数据如下所示:
13 13 13 13 13 9:07.18 9:12.09 9:15.65
14 14 14 2:04.86 2:05.99 2:06.87 14 4:21.51 4:23.51 4:25.00 14 8:56.28 9:01.09 9:04.58
15 15 57.18 57.61 57.95 15 2:02.61 2:03.72 2:04.58 15 4:17.31 4:19.28 4:20.75 15 8:47.15 8:51.87 8:55.30
16 16 56.34 56.76 57.09 16 2:00.69 2:01.78 2:02.63 16 4:13.75 4:15.69 4:17.14 16 8:39.71 8:44.37 8:47.75
17 25.69 25.85 25.99 17 55.62 56.03 56.36 17 1:59.07 2:00.15 2:00.99 17 4:10.76 4:12.69 4:14.11 17 8:33.73 8:38.34 8:41.68
18 25.43 25.59 25.73 18 55.01 55.42 55.74 18 1:57.74 1:58.81 1:59.63 18 4:08.34 4:10.24 4:11.66 18 8:33.73 8:37.04
19 25.20 25.36 25.49 19 54.50 54.91 55.23 19 1:57.74 1:58.56 19 4:08.34 4:09.74 19 8:33.73
我希望它像这样拆分(注意逗号','的位置):
13, 13, 13, 13, 13 9:07.18 9:12.09 9:15.65
14, 14, 14 2:04.86 2:05.99 2:06.87, 14 4:21.51 4:23.51 4:25.00, 14 8:56.28 9:01.09 9:04.58
15, 15 57.18 57.61 57.95, 15 2:02.61 2:03.72 2:04.58, 15 4:17.31 4:19.28 4:20.75, 15 8:47.15 8:51.87 8:55.30
16, 16 56.34 56.76 57.09, 16 2:00.69 2:01.78 2:02.63, 16 4:13.75 4:15.69 4:17.14, 16 8:39.71 8:44.37 8:47.75
17 25.69 25.85 25.99, 17 55.62 56.03 56.36, 17 1:59.07 2:00.15 2:00.99, 17 4:10.76 4:12.69 4:14.11, 17 8:33.73 8:38.34 8:41.68
18 25.43 25.59 25.73, 18 55.01 55.42 55.74, 18 1:57.74 1:58.81 1:59.63, 18 4:08.34 4:10.24 4:11.66, 18 8:33.73 8:37.04
19 25.20 25.36 25.49, 19 54.50 54.91 55.23, 19 1:57.74 1:58.56, 19 4:08.34 4:09.74, 19 8:33.73
上面的数据是相当规律的,因为两位整数在 [13,19] 范围内,但我应该期望的范围是 [10,99]。
有人可以建议一种方法来执行上述转换吗?我已经用正则表达式处理了一段时间,但我无法涵盖所有情况。
【问题讨论】:
-
你的数据结构是什么? - 如果你有你的数据在
string然后mydata = mydata.split(' ') -
@GiantsLoveDeathMetal 简单地拆分并不能满足 OP 的要求。查看第一行所需的输出:有一个看起来像时间组件的东西,需要与前面的整数保持在同一个“元素”中。
-
@not_a_robot 是的 - 棘手
-
所以,
13 13 9:07.18 9:12.09应该拆分为13, 13 9:07.18 9:12.09而不是13, 13, 9:07.18 9:12.09? -
你能
split字符串并根据下一个元素的内容在函数中重建它吗? - 您需要的输出格式是什么?List的strings?