如何在Python中将2D数组的字符串值转换为整数值?

问题描述 投票:0回答:4

我有这样的代码:

a=[['1','2','3'], ['4','5','6']]

for i in range(len(a)):
    a[i][i]=int(a[i][i])

print(a)

输出:

[[1, '2', '3'], ['4', 5, '6']]

它只将第一个值转换为整数,其余的作为字符串保留。有解决方案吗?

python arrays string multidimensional-array integer
4个回答
1
投票

您可以使用嵌套列表理解:

a = [['1','2','3'], ['4','5','6']]

a = [[int(v) for v in l] for l in a]
print(a)

输出:

[[1, 2, 3], [4, 5, 6]]

0
投票

使用数字array

import numpy as np

a = [['1','2','3'], ['4','5','6']]
output = np.array(a, dtype=np.int)

numpy实现将比您尝试的实现效率更高。


0
投票

您只会将每行的第一个元素转换为int,因为您的for循环不正确。您需要两次循环才能访问每个行和列

的所有元素

这应该可以工作:

a=[['1','2','3'], ['4','5','6']]

row_number= len(a)
column_number = len(a[0])

for i in range(row_number):
    for j in range(column_number):
        a[i][j]=int(a[i][j])

0
投票

您可以将列表理解中的map子列表转换为int类型。

a = [['1','2','3'], ['4','5','6']]

a_new = [list(map(int, i)) for i in a]

# [[1, 2, 3], [4, 5, 6]]
© www.soinside.com 2019 - 2024. All rights reserved.