我有一个名为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'),...
谢谢。
答案 0 :(得分:0)
这样做很简单。
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))