在for循环中将字符串转换为int

2021-06-13 13:44:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把字符串矩阵转换成整数矩阵, 例如,我有Matrix=[['1','2']['3','4']]

我使用split是因为我的矩阵是一个有空格的输入,我只是举个例子。你知道吗

我要做的是:

for arr in Matrix:
     arr=arr.split()
     arr=[map(lambda x:int(x),arr)]

由于某种原因矩阵保持不变,我遗漏了什么吗?你知道吗

编辑这是我的可执行代码:

Matrix=[];
while True:
     try:
          arrInput=input('enter');
          Matrix.append(arrInput)
     except (KeyboardInterrupt,EOFError):
          print('done');
          break;
for arr in Matrix:
     arr=arr.split()
2条回答
网友
1楼 ·

您的矩阵语法无效,应该是:

Matrix=[['1','2'],['3','4']]

使用list comprehension

Matrix=[['1','2'],['3','4']]    
print([[int(x) for x in lst] for lst in Matrix])

(如果map是您希望它的样子):

print([list(map(int, lst)) for lst in Matrix])

输出

[[1, 2], [3, 4]]

pyFiddle

编辑:

OP:问题是我不想打印它,所以当我删除打印时会出现这个错误。

如果您不想打印,可以指定:

res = [list(map(int, lst)) for lst in Matrix]
网友
2楼 ·

使用numpypip install numpy)尝试此操作:

import numpy as np
matrix = [['1', '2'], ['3', '4']]
result = np.array(matrix, dtype=int)
print(result.tolist())
# [[1, 2], [3, 4]]

相关问题