Python列表选择性插入列表

2024-06-01 10:57:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两张同样大小的单子 我有28个集合,我需要计算每个集合有多少个元素,这些集合也可能是空的,因为它们是聚类分析的结果。我想有一个名为cluster\u entries的列表,比如cluster\u entries=[[0]*28],然后将找到的相应值adx\u n[I]附加到相应的cluster\u entries[idx\u n[I]]

例如,如果idx\u n[20]=10,我想把值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])

不幸的是,此代码总是附加到第一个元素。。。我不明白为什么


Tags: 项目代码in元素列表forlen集群
1条回答
网友
1楼 · 发布于 2024-06-01 10:57:16

你的名单

cluster_entries = [[0]*28]

是对同一列表的28个相同引用的列表。你需要改用

cluster_entries = [ [0] for i in range(28) ]

有28个独特的名单。你知道吗

另外,在idx_n上迭代的一种更为python的方法是

for i, idx in enumerate(idx_n):
    print i, idx
    cluster_entries[ int(idx) ].append( list_from_files[i] )

相关问题 更多 >