首页 > 解决方案 > 将列表列表中的特定项目从字符串转换为双精度?

问题描述

我对 Python 很陌生,希望这个问题有一个我还没有理解的简单解决方案。在这个问题中,我不允许使用 numpy 或 pandas。

情况是我使用以下代码从 csv 文件中导入了列表列表:

import csv
my_list=[]
with open("my_file.csv", "r") as file:
    csv_reader = csv.reader(file, delimiter = ";")
    
    for rad in csv_reader:
        my_list.append(rad)

这会产生一个列表列表,其中每个元素都是一个字符串。我想做的是将每个列表中的一组元素转换为双精度以进行计算。我的猜测是我需要逐个循环遍历每个列表和 float() 每个元素,因为 float() 不适用于列表。但是,我想不出一个可行的解决方案。

我已经看到了解决方案

[float(i) for i in my_list]

对于单个列表,但不知道如何将其应用于列表列表。特别是因为我不想转换每个列表中的每个项目。

非常感谢任何帮助。

标签: pythonstringdoublenested-lists

解决方案


您可以使用嵌套列表理解来做到这一点

[[float(i) if i.isnumeric() else i for i in inner_list] for inner_list in my_list]

推荐阅读