You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中将字符串类型二维列表转换为整数类型二维列表

问题分析

你遇到的错误是因为从CSV读取的二维列表元素都是字符串类型,而yearly函数里试图把字符串加到整数total上,导致类型不匹配。下面是几种简单的解决方法:

解决方法1:读取CSV时直接转换为整数(推荐)

修改populate2D函数,在分割每行数据后,将每个元素转换为整数。这样后续所有操作都能直接使用数值类型:

rows = 52
cols = 7

def populate2D():
    with open("rainfall.csv","r") as file:
        lineArray = file.read().splitlines()
        matrix = []
        for line in lineArray:
            # 分割后逐个转换为整数
            row = [int(num) for num in line.split(",")]
            matrix.append(row)
    return matrix

def display(matrix):
    print(matrix)
  
def yearly(matrix):
    total = 0
    for row in matrix:
        for value in row:
            total += value
    return total

matrix = populate2D()
display(matrix)
total = yearly(matrix)
print()
print("Total rainfall for the year is " + str(total))

解决方法2:计算总和时临时转换

如果不想修改读取数据的函数,可以在yearly函数里把每个字符串转换为整数再相加:

def yearly(matrix):
    total = 0
    for row in matrix:
        for value in row:
            total += int(value)  # 转换为整数后累加
    return total

解决方法3:加载数据后批量转换矩阵

如果已经有了字符串类型的矩阵,也可以用嵌套列表推导式一次性转换所有元素:

matrix = populate2D()
# 转换为整数矩阵
int_matrix = [[int(num) for num in row] for row in matrix]
total = yearly(int_matrix)

运行结果

修正后运行代码,会正确计算出总降雨量,不再抛出类型错误。

内容的提问来源于stack exchange,提问作者Mateo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:01:07