Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.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_Arrays_Numpy_Type Conversion - Fatal编程技术网

在python中将数组的字符串表示形式转换为实际数组

在python中将数组的字符串表示形式转换为实际数组,python,arrays,numpy,type-conversion,Python,Arrays,Numpy,Type Conversion,大家好,在网络上做一些事情,想知道是否有办法将python数组作为字符串转换回python数组。。比如说 x = "[1,2,3,4]" 将x转换为 x_array = [1,2,3,4] 如果它也可以用于numpy多维数组,则会有额外的好处 对于普通阵列,请使用: 不过,对于简单的应用程序,您可以使用以下方法将空格替换为逗号: 然后,您可以使用ast.literal\u eval并将其转换回numpy.array: >>> x = literal_eval(x) >

大家好,在网络上做一些事情,想知道是否有办法将python数组作为字符串转换回python数组。。比如说

x = "[1,2,3,4]"
将x转换为

x_array = [1,2,3,4]

如果它也可以用于numpy多维数组,则会有额外的好处

对于普通阵列,请使用:

不过,对于简单的应用程序,您可以使用以下方法将空格替换为逗号:

然后,您可以使用
ast.literal\u eval
并将其转换回
numpy.array

>>> x = literal_eval(x)
>>> np.array(x)
array([[1, 2, 3],
       [4, 5, 6]])
>>>

如果确定字符串始终具有该结构,则可以删除括号并拆分字符串:

x_array = [int(y) for y in x[1:-1].split(',') if y.strip()]

我建议你实际上不想这么做。这类事情不容易扩展,例如,通过网络发送您定义的类的实例。相反,我建议您使用类似或的方法将数据转换为字节,通过网络发送,然后再将数据转换回。然而,在其他情况下,我总是使用。如果您指定如何通过网络发送数据,我将为您提供
pickle
在您的情况下的示例用法。

尝试以下方法:

x_array = [(int(y) if y.strip() else None) for y in x[1:-1].split(',')]

阿卡雷姆??这对于列表来说是无效的语法。没人在乎。支持字符串来保存有效的列表表示形式。在
x=“[1,2,3,4,5,]”上出现中断。
使用strip检查空字符串进行了修复。+1用于提及pickle。+1但是,尽管我知道您正在尝试做什么,但我认为您应该包括
列表(筛选器)(lamda x:x不是None,
围绕此删除
None
值。为什么您都回答并标记为重复?请阅读此内容,此答案已在重复的线程中提到。@njzk2哦,我没有看到其他答案中提到JSON的部分。@njzk2,您应该阅读链接问题中的答案:)“这个问题应该结束(稍后删除),但请继续,先给提问者他们想要的答案,这样我们就不会给他们留下绝对可怕的经历。”
>>> x = literal_eval(x)
>>> np.array(x)
array([[1, 2, 3],
       [4, 5, 6]])
>>>
x_array = [int(y) for y in x[1:-1].split(',') if y.strip()]
x_array = [(int(y) if y.strip() else None) for y in x[1:-1].split(',')]
Python 2.7.5+ (default, Sep 19 2013, 13:48:49) 
>>> import json
>>> json.loads("[1,2,3,4]")
[1, 2, 3, 4]
>>>