python - 将列表列表中的特定项目从字符串转换为双精度?
问题描述
我对 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]
对于单个列表,但不知道如何将其应用于列表列表。特别是因为我不想转换每个列表中的每个项目。
非常感谢任何帮助。
解决方案
您可以使用嵌套列表理解来做到这一点
[[float(i) if i.isnumeric() else i for i in inner_list] for inner_list in my_list]
推荐阅读
- jenkins - Ansible Inventory: LC_ALL: 无法更改语言环境 (en_US.UTF-8)\r\n/bin/sh
- linux - 无法将 bash 脚本作为服务启动 | 灭霸——普罗米修斯
- unity3d - Unity3D 自上而下的平面银行计算
- javascript - 控制与网络系统的交互
- user-interface - 如何将滑块绑定到参数,以便滑块允许在数据列中的值之间进行选择?
- c# - 即使卸载后,应用程序中的文件仍然存在
- perl - 如何在 Perl 的 fetchall_arrayref foreach 循环中获取数组的最后一个元素?
- python - 使用 pygame 模块概括键输入
- linked-list - 链表空指针异常
- python - 从boruta导入Borutapy,错误:找不到名为Boruta的模块