我正在使用 Google 的 OR-Tools 来解决一个简单的 VRP 问题。我需要绘制解决方案。所以,我解析print_solution()
函数返回旅游字典。现在,我有了一个像这样的字符串列表
tour = [' 0 -> 14 -> 15 -> 19 -> 1 -> 13 -> 5 -> 10 -> 20 -> 3 -> 7 -> 6 -> 16 -> 4 -> 9 -> 2 -> 17 -> 11 -> 12 -> 8 -> 18 -> 0']
有人可以帮我只获取此列表中的整数吗?
最佳答案
第一个提供的答案有一些问题,但它几乎可以工作。其背后的想法是合理的。请参阅答案的评论以获取对我所看到的问题的解释。
我会以不同的方式执行此操作,以便分割结果是纯粹的数字,而不是两侧带有空格的数字,然后必须单独处理。也就是说,我会让空格被视为分隔符的一部分。所以我会这样做:
import re
tour = [' 0 -> 14 -> 15 -> 19 -> 1 -> 13 -> 5 -> 10 -> 20 -> 3 -> 7 -> 6 -> 16 -> 4 -> 9 -> 2 -> 17 -> 11 -> 12 -> 8 -> 18 -> 0']
x = [int(digits) for digits in re.split(r'\s*->\s*', tour[0])]
print(x)
结果:
[0, 14, 15, 19, 1, 13, 5, 10, 20, 3, 7, 6, 16, 4, 9, 2, 17, 11, 12, 8, 18, 0]
无论 int()
是否正确处理用空格填充的参数,此代码都将起作用,因为空格已被删除。
关于python-3.x - 将字符串拆分为整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65486242/