Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将带破折号的列表转换为数字_Python - Fatal编程技术网

Python 将带破折号的列表转换为数字

Python 将带破折号的列表转换为数字,python,Python,我从CSV文件中创建了一个列表。看起来是这样的: ['18', '29', '0'...'0', '-14', '9'] list2=[[float(column) for column in row] for row in list1] 它的开头有一个文本元素,我弹出了它。现在,Python不能像处理正确的数字那样处理列表元素。例如,每当我尝试将元素解析为浮点数时,就会收到错误消息: ValueError: could not convert string to float: - 我的代

我从CSV文件中创建了一个列表。看起来是这样的:

['18', '29', '0'...'0', '-14', '9']
list2=[[float(column) for column in row] for row in list1]
它的开头有一个文本元素,我弹出了它。现在,Python不能像处理正确的数字那样处理列表元素。例如,每当我尝试将元素解析为浮点数时,就会收到错误消息:

ValueError: could not convert string to float: -
我的代码如下所示:

['18', '29', '0'...'0', '-14', '9']
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正确地将破折号解析为数字吗?

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

list2 = map(float, list1)

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

看起来您正在创建的列表是1D,但当您尝试解析它时,您将其视为2D列表,该列表将尝试将每个元素中的每个字符转换为浮点(因此,它在尝试执行
浮点('-')
)时会引发错误。请尝试用以下内容替换该行以修复此问题:

list2 = map(float, list1)

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

float('-14')
在这里工作正常。错误一定在其他地方?列表到底是什么?因为
float('-14'))
给出了
-14.0
。您得到的错误似乎是因为列表中有一个
-
单独的列表…您确定
列表1
包含其他列表吗?我不确定列表的数据类型,但第二个版本应该适用于字符串,不是吗?为什么将其视为行/列对?完整列表太长,无法在此处发布,但所有数字都与上面的一样。
float('-14')
在此处工作正常。错误一定在其他地方?具体列表是什么?因为
float('-14'))
给出了
-14.0
。您得到的错误似乎是因为列表中有一个
-
单独的列表…您确定
列表1
包含其他列表吗?我不确定列表的数据类型,但第二个版本应该适用于字符串,不是吗?为什么将其视为行/列对?完整列表太长了,无法在这里发布,但都是上面的数字。