我有这样的代码:
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']]
它只将第一个值转换为整数,其余的作为字符串保留。有解决方案吗?
您可以使用嵌套列表理解:
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]]
使用数字array:
import numpy as np
a = [['1','2','3'], ['4','5','6']]
output = np.array(a, dtype=np.int)
numpy实现将比您尝试的实现效率更高。
您只会将每行的第一个元素转换为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])
您可以将列表理解中的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]]