我有一个字符串:
$fields=array(
"registration_ids"=>$registration_ids,
"delay_while_idle" => true,
"priority" => "high",
"data"=>$message
);
我也定义了numpy数组:
str='ABCDEFG'
现在我希望能够将字符串转换为具有由这些变量定义的行的numpy数组:
A=numpy.array([1,2,3])
B=numpy.array([2,3,4])
这些是非常长的字符串,我宁愿不使用find和replace类型的操作来遍历它们。
答案 0 :(得分:1)
列出对胜利的理解:
In[18]: str='ABCDEFG'
In[19]: A=[1,2,3]
B=[2,3,4]
In[20]: [locals().get(x) for x in str if x in locals().keys()]
Out[20]: [[1, 2, 3], [2, 3, 4]]
您应该使用locals
或globals
,具体取决于您的范围。
答案 1 :(得分:0)
我不推荐您提出的方法。管理变量和变量名称实际上是程序员的工作,而不是程序。
使用DataFrame(即表格)对象,似乎可以更轻松地完成您尝试做的事情。数据帧的每一行都有一个标识符(在你的情况下是'ABCDEFG'中的一个字符)。
我建议您查看pandas库:http://pandas.pydata.org/。它以最少的代码很好地适合您的用例:
import pandas as pd
rownames = list('AB')
dataframe = pd.DataFrame([[1,2,3],[2,3,4]], index=rownames)
dataframe.loc['B'] # Returns [2, 3, 4] as a Series