Python 拆分数组列表并将每个数组保存在新变量中

Python 拆分数组列表并将每个数组保存在新变量中,python,arrays,numpy,Python,Arrays,Numpy,我有以下功能,可以对约800个元素的文件进行100次重采样: def resample(arg_array): all_sets = [] i = 1 while i <= 100: subset = np.random.choice(arg_array, 100, replace=True) all_sets.append(subset) i += 1 return all_sets def重采样(arg_

我有以下功能,可以对约800个元素的文件进行100次重采样:

def resample(arg_array):
    all_sets = []
    i = 1
    while i <= 100:
        subset = np.random.choice(arg_array, 100, replace=True)
        all_sets.append(subset)
        i += 1
    return all_sets
def重采样(arg_数组):
所有_集=[]
i=1
而我像这样怎么样

def resample(arg_array):
    for i in range(1, 101):
        subset = np.random.choice(arg_array, 100, replace=True)
        globals()[f"set{i}"] = subset
像这样怎么样

def resample(arg_array):
    for i in range(1, 101):
        subset = np.random.choice(arg_array, 100, replace=True)
        globals()[f"set{i}"] = subset

不必为每个集合创建一个变量,您可以像这样将它们存储在字典中

def resample(arg_array):
    sample_map = {}
    for n in range(1, 100+1):
        subset = np.random.choice(arg_array, 100, replace=True)
        sample_map[n] = subset
    return sample_map
甚至这个

def resample(arg_array):
    sample_map = {n:np.random.choice(arg_array, 100, replace=True) for n in range(1, 100+1)}
    return sample_map

不必为每个集合创建一个变量,您可以像这样将它们存储在字典中

def resample(arg_array):
    sample_map = {}
    for n in range(1, 100+1):
        subset = np.random.choice(arg_array, 100, replace=True)
        sample_map[n] = subset
    return sample_map
甚至这个

def resample(arg_array):
    sample_map = {n:np.random.choice(arg_array, 100, replace=True) for n in range(1, 100+1)}
    return sample_map

您可以使用
setattr()
创建一个类并使每个集合成为该类的一个属性,但是如果您真的需要这样做,而不仅仅是通过索引访问列表元素,我会感到惊讶。你能在用例上再扩展一点吗?这基本上是一个折刀分析。有大约700(不是800)个ID,可以从中重新取样,并对100个控件进行测试。重复100次。由于我的工作是在shell上完成的,所以我希望传递一个命令行参数(带有ID的txt文件)作为函数参数,然后将新的100元素重采样列表输出到新的txt文件,以便我可以在下游处理。从列表或元组解包是唯一合理的python代码。”动态地“创建”变量名既笨拙又明显不符合python。如果需要处理多个对象,请使用列表和dict。我想我可以循环并将列表或dict中的每个元素写入新文件,但globals()解决方案也可以。您可以使用
setattr()创建一个类,并将每个集作为该类的属性
但如果您真的需要这样做,而不仅仅是通过索引访问列表元素,我会感到惊讶。你能在用例上再扩展一点吗?这基本上是一个折刀分析。有大约700(不是800)个ID,可以从中重新取样,并对100个控件进行测试。重复100次。由于我的工作是在shell上完成的,所以我希望传递一个命令行参数(带有ID的txt文件)作为函数参数,然后将新的100元素重采样列表输出到新的txt文件,以便我可以在下游处理。从列表或元组解包是唯一合理的python代码。”动态地“创建”变量名既笨拙又明显不符合python。如果需要处理许多对象,请使用列表和dict。我想我可以循环并将列表中的每个元素或dict写入新文件,但globals()解决方案也可以。这满足了我的需要。我用它将每个子集写入一个新文件,这正是我想要的。谢谢,这正是我所需要的。我用它将每个子集写入一个新文件,这正是我想要的。谢谢