追加到清单清单

时间:2019-05-23 04:29:25

标签: python for-loop indexing

我已经在表示要素的数据集Kmeans上应用了top_feat,并且在集群中创建了列表清单。

我想获得哪个功能属于哪个群集。但是使用此代码,我在所有群集中得到的值都相同。理想情况下,我应该将值设为

         len(cluster[0])=249 #(I don't know the exact number)
         len(cluster[1])=1
         len(cluster[2])=1
         #..
         len(cluster[5])=1.

我总共有2500个功能。但是运行此代码,我得到的所有群集的长度均为2500。就好像所有群集都在获取所有功能一样。

我使用了一个从0到2500的for循环;这样cluster[w[i]] = top_feat[i],其中w[i]是标签的值。 w= kmeans.labels_

所以if w[i] == 1,它将是cluster [1] .append(top_feat [i])。在这里,max(w) = 6


        cluster = [[]]*((max(w)+1))
        for i in range(0,2500):
            cluster[w[i]].append(top_feat[i])

1 个答案:

答案 0 :(得分:1)

[[]]*((max(w)+1))中的子列表都引用相同的列表,因此更改一个列表将全部更改,而不是相乘,而是使用列表理解来创建max(w) + 1个不同的列表:

cluster = [[] for _ in range(max(w) + 1)]