首页 > 解决方案 > 制作美国出生列表:如何在列表中将字符串设为 int

问题描述

def read_csv(filename):
    string_data = open(filename).read()
    string_list = string_data.split("\n")[1:]
    final_list = []

    for row in string_list:
        string_fields = row.split(",")
        int_fields = []
        for value in string_fields:
            int_fields.append(value)
        final_list.append(int_fields)
    return final_list

cdc_list = read_csv("US_births_1994-2003_CDC_NCHS.csv")
cdc_list[0:3]

当我运行这段代码时,我得到了这样的结果:

[['1994', '1', '1', '6', '8096'], ['1994', '1', '2', '7', '7772'], ['1994', '1', '3', '1', '10142']]

但我想要这样的结果:

[[1994, 1, 1, 6, 8096], [1994, 1, 2, 7, 7772], [1994, 1, 3, 1, 10142]]

你能帮我解决这个问题吗?

标签: pythonvalueerror

解决方案


以下列表推导将 的子列表中的字符串转换cdc_list为整数:

[list(map(int, s)) for s in cdc_list]

推荐阅读