Python numpy for loops,从列表创建列表并连接



我有一个名为my_list的Python numpy列表,如下所示,我可以访问my_list[0](第一级)和my_list[0][0](第二级)等元素。

[array(['27103', '27106', '27104', '87115'],
       dtype='<U6'),
 array(['20049', '20033', '655155'],
       dtype='<U6'),...

对于列表第二级中的每个元素,我创建了另一个列表,每个列表包含 3 个元素。因此,对于元素"27103",有一个长度为 3 的新列表,对于"27106",有另一个包含 3 个元素的列表。

我的问题是我如何组合新列表,以便计算也完成第一级。我编写了下面的代码:

temp_list = []
temp_list2 = []
for i in range(len(my_list)):
    for j in range(len(set(my_list[i]))):
        temp_list.append(list(x[np.where(df.index.isin(my_list[i]))[0][j]]))
    temp_list2.append(np.concatenate(temp_list))

给出的结果如下:

[array(['111005', '112140', '627372', '639240', '672846', '71138', '10618',
        '110619', '639821', '668821', '672079', '672080'], dtype='<U6'),
 array(['111005', '112140', '627372', '639240', '672846', '71138', '10618',
        '110619', '639821', '668821', '672079', '672080', '109002',
        '112839', '26800', '112137', '652520', '667409', '104506',
        '110004', '110955'], dtype='<U6'),...

问题是它从一开始就附加到temp_list2。我怎样才能防止这种情况,只取相关部分,使其如下所示?

[array(['111005', '112140', '627372', '639240', '672846', '71138', '10618',
        '110619', '639821', '668821', '672079', '672080'], dtype='<U6'),
 array(['109002', '112839', '26800', '112137', '652520', '667409', '104506',
        '110004', '110955'], dtype='<U6'),...

提前谢谢。

这样做很简单。

temp_list2 = []
for i in range(len(my_list)):
    temp_list = []
    for j in range(len(set(my_list[i]))):
        temp_list.append(list(x[np.where(df.index.isin(my_list[i]))[0][j]]))
    temp_list2.append(np.concatenate(temp_list))

最新更新