Skip to main content
 首页 » 编程设计

python之将带有破折号的列表转换为数字

2025年05月04日13yyy_WW

我根据 CSV 文件制作了一个列表。它看起来像这样:

['18', '29', '0'...'0', '-14', '9'] 

它的开头有一个文本元素,我将其弹出。现在,Python 不能像处理适当的数字那样处理列表元素。例如,每当我尝试将元素解析为 float 时,我都会收到错误消息:

ValueError: could not convert string to float: - 

我的代码是这样的:

list2=[[float(column) for column in row] for row in list1] 

或者这个:

list2 = [map(float, x) for x in list1] 

两个版本产生相同的结果。如果我尝试不同的数据类型,我会收到如下消息:

ValueError: invalid literal for int() with base 10: '-' 

谁能告诉我如何让 Python 将破折号正确解析为数字?

请您参考如下方法:

看起来您正在创建的列表是一维的,但是当您尝试解析它时,您将其视为二维列表,它将尝试将每个元素中的每个字符转换为 float (因此在尝试时会抛出错误做 float('-'))。尝试用以下内容替换该行以解决问题:

list2 = map(float, list1) 

您还应该尝试在该行之前添加 print list1 以确认该列表具有您认为的结构。