首页 > 解决方案 > 在python中将字符串值拆分为整数

问题描述

我这里有一些不同的号码。它每次都在变化。我需要创建一个像
array[x][y]=>这样的多维数组,x应该包含之前拆分的值,,并且y应该包含' '空。
我怎样才能做到这一点 ?谢谢你。

dat.xyz
2,3,4,5,6,7,8,9 2,3,4,5,6,7,8,9 2,3,4,5,6,7,8,9 2,3,4,5,6,7,8,9

output = open('dat.xyz', 'r') # See the r
output_list = output.read().strip().split(',')

我以前可以找到数字,,但它只显示在一行中。但是,我想做那个多维的。它应该拆分维度以查看 empty ' '。谢谢你。

输出应如下

[[2, 3, 4, 5, 6, 7, 8, 9], 
[2, 3, 4, 5, 6, 7, 8, 9], 
[2, 3, 4, 5, 6, 7, 8, 9], 
[2, 3, 4, 5, 6, 7, 8, 9]]

标签: pythonmultidimensional-arraysplit

解决方案


您应该首先拆分空格以获取行,然后迭代这些行以获取单元格:

>>> rows = "2,3,4,5,6,7,8,9 2,3,4,5,6,7,8,9 2,3,4,5,6,7,8,9 2,3,4,5,6,7,8,9".split(' ')
>>> rows
['2,3,4,5,6,7,8,9', '2,3,4,5,6,7,8,9', '2,3,4,5,6,7,8,9', '2,3,4,5,6,7,8,9']
>>> [row.split(',') for row in rows]
[['2', '3', '4', '5', '6', '7', '8', '9'], ['2', '3', '4', '5', '6', '7', '8', '9'], ['2', '3', '4', '5', '6', '7', '8', '9'], ['2', '3', '4', '5', '6', '7', '8', '9']]

您还可以将这些单元格转换为整数:

>>> [[int(cell) for cell in row.split(',')] for row in rows]
[[2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9]]

或让numpy您进行转换:

>>> import numpy as np
>>> np.array([row.split(',') for row in rows], np.int)
array([[2, 3, 4, 5, 6, 7, 8, 9],
       [2, 3, 4, 5, 6, 7, 8, 9],
       [2, 3, 4, 5, 6, 7, 8, 9],
       [2, 3, 4, 5, 6, 7, 8, 9]])

推荐阅读