Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_List_Decimal_String Conversion - Fatal编程技术网

Python 如何将此列表中的字符串转换为十进制?

Python 如何将此列表中的字符串转换为十进制?,python,list,decimal,string-conversion,Python,List,Decimal,String Conversion,我正在尝试将列表列表中的字符串转换为十进制形式: ask=[[31188.28758860',2],[31183.48445986',0.14258435],…] 我尝试在ask中为elem使用elem.strip('“')来删除引号,但得到“AttributeError:'list'对象没有属性'strip'”,因此我假设我没有访问字符串的嵌套级别尝试以下操作: ans = [[float(i) if type(i)==str else i for i in j] for j in ask]

我正在尝试将列表列表中的字符串转换为十进制形式:

ask=[[31188.28758860',2],[31183.48445986',0.14258435],…]

我尝试在ask中为elem使用
elem.strip('“')来删除引号,但得到“AttributeError:'list'对象没有属性'strip'”,因此我假设我没有访问字符串的嵌套级别

尝试以下操作:

ans = [[float(i) if type(i)==str else i  for i in j] for j in ask]
print(ans)
输出 只获取嵌套列表的第一个值

获得与以前相同的结构,但字符串替换为浮点数

ask = [['31188.28758860', 2], ['31183.48445986', 0.14258435]]
ask_list = [[float(j) for j in i] for i in ask]

这将完成您的工作。输出(询问列表)将是
[[31188.2875886,2.0],[31183.48445986,0.14258435]]

您期望的输出是什么?当您在ask
中对elem执行
操作时,
elem
是一个列表,使用列表上的
条带将显示错误。
elem
是一个列表,而不是字符串。要获取字符串,您需要
elem[0]
。但您不能通过“删除引号”将字符串转换为浮点“。您看到的是字符串的源代码表示形式。内存中没有引号。相反,有一个复杂的数据结构,表示它是一个长度为13的字符串。在内部,浮点看起来更不像它的源代码表示形式。使用对“float()”的调用转换字符串,而不是试图操纵外部性。虽然这段代码可能会回答这个问题,但通过解释代码解决问题的原因和方式,您将为OP和未来的读者提供更多帮助
ask = [['31188.28758860', 2], ['31183.48445986', 0.14258435], ...]

converted_ask = [[float(x[0]), x[1]] for x in ask]
[float(elem[0]) for elem in ask]
[[float(elem[0]), elem[1]] for elem in ask]
ask = [['31188.28758860', 2], ['31183.48445986', 0.14258435]]
ask_list = [[float(j) for j in i] for i in ask]