在Python列表中出现负浮点值的问题

时间:2018-11-13 00:17:11

标签: python list floating-point

因此,我尝试将浮点数作为Python列表中的元素使用,但我不断收到此错误。我尝试将每个值设置为字符串,然后在调用数组进行打印时将其转换为浮点数,但这似乎也不起作用

P1 = [45.100000, ‐65.400000]
print(P1[0])
SyntaxError: invalid character in identifier

尝试#2

P1 = ["45.100000", "‐65.400000"]
print(float(P1[1]))
ValueError: could not convert string to float: '‐65.400000'

我觉得问题与第二个元素(@索引1)前面的负值有关

3 个答案:

答案 0 :(得分:2)

您使用的连字符存在问题。如果将连字符剪切并粘贴到列表p1中,然后检查unicode,则会显示:

>>> ord('‐')
8208

鉴于正确的负号或减号应为:

>>> ord('-')
45

根据获得该列表的方式,您必须弄清楚为什么包含该字符,或者使用适当的Hyphen-Minus重新键入它

答案 1 :(得分:1)

我复制了您的代码并运行了它,我所要做的就是替换“-”,好像您使用的是错误字符。试试这个;

P1 = [45.100000, -65.400000]

答案 2 :(得分:1)

这是因为您的obj[key[0]][key[1]]不是减号而是连字符:

-

>>> "‐65.400000".encode('utf-8') # copy from your example b'\xe2\x80\x9065.400000' >>> "-65.400000".encode('utf-8') # Replace with my minus b'-65.400000' 是连字符,请参见here:您的连字符为\xe2\x80\x90,而连字符减号为U+2010