我想通过for循环创建数组以自动分配数组名称。
但是使用for循环,它不起作用,并且创建包含numpy.array()的字典也不起作用。目前,我没有更多的想法... 我用python处理不是很安全。
import numpy as np
for file_name in folder:
file_name = np.array()
file_name.extend((blabla, blabla1))
我希望获得具有自动分配名称的数组,例如file_name1
,file_name2
,...
但是我得到了建议,“上面已声明file_name
,没有使用”,并且输出在行file_name = np.array()
TypeError:array()缺少必需的参数“对象”(位置1)...
答案 0 :(得分:0)
如果您确实想将字符串用作命名变量,则可以使用globals()
进行操作。
globals()[filename] = np.array()
示例:
>>> globals()['test'] = 1
>>> test
1
当然,这会填充全局名称空间。否则,您可以使用locals()
。
答案 1 :(得分:0)
正如@Mark Meyer在评论中所说,您应该通过将file_name
设置为键来使用字典(在Python中为iterable
)。
根据您的错误,在创建一个numpy数组时,应提供一个list
(例如>>> folder = ['file1', 'file2']
>>> blabla = 0
>>> blabla1 = 1
>>> {f: np.array((blabla, blabla1)) for f in folder}
{'file1': array([0, 1]), 'file2': array([0, 1])}
)。
例如:
P