Skip to main content
 首页 » 编程设计

python之是否可以搜索特定的键/值条目,如果找到,则删除整个字典

2025年05月04日17虾米姐

我有一个 CSV 文件,我正在将其作为字典列表进行迭代(想象一下 excel 文件中的每一行都由一个单独的字典表示,该字典由一个列名和该列的值组成)。

有什么方法可以遍历所有字典,搜索特定的键:值组合,如果找到,则删除整个字典?本质上,如果特定列 == 99999,则删除该行(字典)。

这就是我所拥有的,我得到的“列表索引超出范围”错误似乎是 常见于此类事物。

for i in range(len(csv_data)): 
    column_name = 'specific_column' 
    if csv_data[i][column_name] == '99999': 
        del csv_data[i] 
    else: 
        pass 

请您参考如下方法:

您可以使用列表理解重建列表,保留行:

column_name = 'specific_column' 
csv_data = [row for row in csv_data if row[column_name] != '99999'] 

这将创建一个新列表,替换旧列表,其中仅保留特定列未设置为 '99999' 的字典。

你得到一个 IndexError 异常,因为你的循环没有考虑到列表越来越短;您正在从 0 循环到 N,但是当您删除时,列表的最后一个索引从 N - 1 移动到 N - 2等

此外,当您的 i 循环遍历索引时,您最终会跳过 行,因为 i 递增,但是索引中的下一个元素当您删除它前面的项目时,列表会向下移动索引。