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

Python:将CSV读取结果转为指定类型的元组列表

如何将CSV读取的字符串列表转换为指定类型的元组列表?

嘿,这事儿其实挺简单的!你已经用csv.reader拿到每行的字符串列表了,接下来只需要在遍历的时候对特定位置的元素做类型转换,再把整行打包成元组就行,完全不用额外导入别的模块。

直接上修改后的代码:

import csv

stock_tuples = []
with open('data/stock.csv', newline='') as csvfile:
    reader = csv.reader(csvfile, delimiter=',', quotechar='|')
    for row in reader:
        # 按要求转换类型:前4个保持str,第5个转float,第6个转int
        converted_row = (
            row[0],
            row[1],
            row[2],
            row[3],
            float(row[4]),
            int(row[5])
        )
        stock_tuples.append(converted_row)

简单解释下:

  • 先初始化一个空列表stock_tuples用来存储最终的元组结果
  • 遍历reader返回的每一行字符串列表时,对对应位置的元素做类型转换:
    • 前四个元素(日期、交易所、公司名、股票代码)本来就是字符串,直接保留即可
    • 第5个元素(股价)用float()转换为浮点数
    • 第6个元素(成交量)用int()转换为整数
  • 把转换后的元素打包成元组,添加到stock_tuples列表里就完成了

如果你的CSV里可能存在格式不规范的行(比如某个位置不是数字),可以加个try-except块来避免程序崩溃,比如:

import csv

stock_tuples = []
with open('data/stock.csv', newline='') as csvfile:
    reader = csv.reader(csvfile, delimiter=',', quotechar='|')
    for idx, row in enumerate(reader):
        try:
            converted_row = (
                row[0],
                row[1],
                row[2],
                row[3],
                float(row[4]),
                int(row[5])
            )
            stock_tuples.append(converted_row)
        except (ValueError, IndexError) as e:
            print(f"第{idx+1}行格式有问题,跳过:{row},错误信息:{e}")

这样遇到有问题的行就会提示并跳过,不会影响整个程序运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:31:44