首页 > 解决方案 > 将矩阵从字符串转换为整数

问题描述

我正在尝试将数字矩阵从字符串更改为整数,但它不起作用。

for element in list:
    for i in element:
        i = int(i)

我究竟做错了什么?

编辑:这是整个代码:

import numpy as np

t_list = []
t_list = np.array(t_list)

list_rains_per_months = [['63', '65', '50', '77', '66', '69'],
 ['65', '65', '67', '50', '54', '58'],
 ['77', '73', '80', '83', '89', '100'],
 ['90', '85', '90', '90', '84', '90'],
 ['129', '113', '120', '135', '117', '130'],
 ['99', '116', '114', '111', '119', '100'],
 ['105', '98', '112', '113', '102', '100'],
 ['131', '120', '111', '141', '130', '126'],
 ['85', '101', '88', '89', '94', '91'],
 ['122', '103', '119', '98', '101', '107'],
 ['121', '101', '104', '121', '115', '104'],
 ['67', '44', '58', '61', '64', '58']]

for element in t_list:
    for i in element:
        i = int(i)

对于任何错误,我深表歉意,我是 python 新手

标签: pythonstringmatrixtype-conversioninteger

解决方案


你做错了什么,是你没有改变列表或任何列表元素:循环内的'i'首先指向列表的每个元素,然后你让它指向其他东西,但这并没有' 不影响您的列表(另外,避免使用 'list' 作为标识符,它是现有类型,这是自找麻烦)。

一种方法是使用列表推导。假设您的矩阵是(内部)列表的列表,例如:

a_list = [["3", "56", "78"], ["2", "39", "60"], ["87", "9", "71"]]

那么两个嵌套列表推导应该可以解决问题:

a_list = [[int(i) for i in inner_list] for inner_list in a_list]

这将构建一个新列表,通过遍历您的初始列表、应用您想要的更改并将其保存为另一个(或相同)列表而形成。


推荐阅读