更改列表中特定列中的值

Changing values in a specific column in a list

我有一个大数据文件,我想稍微编辑一下。我正在检查某一列(在本例中为第 8 列)中的值在多行中是否具有相同的值,如果它达到与我的 "multiplicity" 变量相同的行数,我将这些行保存到一个新数组。但是,如果未达到此数量,我想将检查的行的另一列(第 5 列)中的值更改为已达到的行数(即我的 "count" 变量)。这是我的代码不起作用的地方。

multiplicity=7
complete_systems=[]       
for i in range(len(matching_rows)):
    count = 0
    value=matching_rows[i][8]
    for j in range(len(matching_rows)):
        if matching_rows[j][8]==value:
            count+=1
    if count ==multiplicity:
        complete_systems.append(matching_rows[i])
    else count for matching_rows[i][5] in matching_rows:
        complete_systems.append(matching_rows[i])

其中 matching_rows 是我的数组。示例行:

[memmap(['K00806.02', '60.32494216', '12.19', '89.83', '0.2998', '5', '22',
         '0.8670', '0.9860', '347.20'],
        dtype='<U12'),
 memmap(['K00806.01', '143.2063047', '8.9', '89.83', '0.5336', '5', '9',
         '0.8670', '0.9860', '138.80'],
        dtype='<U12'),
 memmap(['K00232.05', '56.2590881', '2.22', '89.97', '0.287', '5', '22',
         '1.1910', '0.9950', '29.70'],
        dtype='<U12'),

所以代码一直运行到 ELSE 部分,这只是 returns 一个无效语法错误。我没有太多编程经验,所以希望得到一些提示!

else count for matching_rows[i][5] in matching_rows:

在Python中没有意义。首先,else 后面需要冒号:

else:

你的意思可能是

elif count for matching_rows[i][5] in matching_rows:

但是

count for matching_rows[i][5] in matching_rows:

在Python中仍然没有意义。你可能想要

matching_rows[i][5] in matching_rows:

所以完整的语句应该是

elif matching_rows[i][5] in matching_rows:

这似乎已经完成了!

if count ==multiplicity:
        complete_systems.append(matching_rows[i])
else:
        matching_rows[i][5]=count
        complete_systems.append(matching_rows[i])