Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 将字符串拆分为整数列表_Python 3.x_List - Fatal编程技术网

Python 3.x 将字符串拆分为整数列表

Python 3.x 将字符串拆分为整数列表,python-3.x,list,Python 3.x,List,我正在研究谷歌的或工具来解决一个简单的VRP问题。我需要画出解决方案。因此,我解析print\u solution()函数以返回一个旅游词典。现在,我有一个这样的字符串列表 tour = [' 0 -> 14 -> 15 -> 19 -> 1 -> 13 -> 5 -> 10 -> 20 -> 3 -> 7 -> 6 -> 16 -> 4 -> 9 -> 2 -> 17

我正在研究谷歌的或工具来解决一个简单的VRP问题。我需要画出解决方案。因此,我解析
print\u solution()
函数以返回一个旅游词典。现在,我有一个这样的字符串列表

tour = [' 0 ->  14 ->  15 ->  19 ->  1 ->  13 ->  5 ->  10 ->  20 ->  3 ->  7 ->  6 ->  16 ->  4 ->  9 ->  2 ->  17 ->  11 ->  12 ->  8 ->  18 -> 0']

有人能帮我从这个列表中只获取整数吗?

提供的第一个答案有一些问题,但它几乎可以工作。它背后的理念是合理的。有关我所看到的问题的解释,请参见答案上的注释

x = tour.split('->')
int_list = [int(num.strip()) for num in x]
我会以不同的方式来做,这样分割的结果就是纯粹的数字,而不是两边都有空格的数字,然后必须单独处理。也就是说,我将使空格被视为分隔符的一部分。所以我会这样做:

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()
是否正确处理了用空格填充的参数,此代码都会工作,因为空格已经被去除。

您不能在列表上调用
split
,因此如果
tour
的OPs定义,此答案的第一行将失败。相反,应该对所提供列表的单个元素调用
split
,如下所示:
x=tour[0]。split('->')
。函数
int()
将从传递内容的开头和结尾去除空格,因此这里不需要调用
strip()
。第二行可以是:
int\u list=[int(num)表示x中的num]