我已经判断了所有其他问题,但没有找到有用的解决方案=/

我有一本 list 字典:

d = {'a': [1], 'b': [1, 2], 'c': [], 'd':[]}

其中某些值为空.在创建这些列表的末尾,我想在返回字典之前删除这些空列表.目前,我try 这样做:

for i in d:
    if not d[i]:
        d.pop(i)

然而,这给了我运行时错误.我知道你不能在字典中添加/删除元素,而在字典中进行迭代...那么,有什么办法可以解决这个问题呢?

推荐答案

在Python 3中.x和2.x您可以使用list强制制作密钥副本:

for i in list(d):

在Python2.x中,调用keys创建了键的副本,您可以在修改dict时遍历这些键:

for i in d.keys():

但请注意,在Python3中.第二种方法对你的错误没有帮助,因为keys返回一个view object,而不是将键复制到一个列表中.

Python相关问答推荐

Pandas数据帧处理Pandas表中Json内的嵌套列表以获取后续Numpy数组

如何将 map 数组组合到pyspark中每列的单个 map 中

两极:如何分割一个大 pyramid 并并行保存每个

使用argsorted索引子集索引数组

抓取rotowire MLB球员新闻并使用Python形成表格

对整个 pyramid 进行分组与对 pyramid 列子集进行分组

如何根据参数推断对象的返回类型?

为什么带有dropna=False的groupby会阻止后续的MultiIndex.dropna()工作?

如何过滤包含2个指定子字符串的收件箱列名?

ODE集成中如何终止solve_ivp的无限运行

如何使用表达式将字符串解压缩到Polars DataFrame中的多个列中?

从spaCy的句子中提取日期

pandas:排序多级列

在含噪声的3D点网格中识别4连通点模式

多指标不同顺序串联大Pandas 模型

多处理队列在与Forking http.server一起使用时随机跳过项目

计算分布的标准差

使用Python从rotowire中抓取MLB每日阵容

PYTHON、VLC、RTSP.屏幕截图不起作用

通过追加列表以极向聚合