我有两个相同大小的列表 我有28套,我需要计算每套有多少元素,这些集合也可能是空的,因为它们是聚类分析的成果。我想要一个名为cluster_entries的列表列表,例如cluster_entries = [[0] * 28],然后将找到的相应值ad id_n_n [i]附加到相应的cluster_entries [idx_n [i]]
所以例如如果我有idx_n [20] = 10我想在cluster_entries的列表20中添加值20.因此我编写了以下代码:
for i in range(len(idx_n)):
print i, idx_n[i]
cluster_entries[int(idx_n[i])].append(list_from_files[i])
不幸的是,这段代码总是追加到第一个元素......我不明白为什么
答案 0 :(得分:0)
您的清单
cluster_entries = [[0]*28]
是对同一列表的28个相同引用的列表。你需要改为使用
cluster_entries = [ [0] for i in range(28) ]
拥有28个唯一列表。
此外,迭代idx_n
的更加pythonic方式是
for i, idx in enumerate(idx_n):
print i, idx
cluster_entries[ int(idx) ].append( list_from_files[i] )