列表选择性插入的Python列表

时间:2013-07-12 14:45:35

标签: python list multiple-insert

我有两个相同大小的列表 我有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])

不幸的是,这段代码总是追加到第一个元素......我不明白为什么

1 个答案:

答案 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] )