gpt4 book ai didi

python - OrderedDict 的行为

转载 作者:太空宇宙 更新时间:2023-11-04 07:54:03 32 4
gpt4 key购买 nike

我在回答关于 SO 的其中一个问题时偶然发现了 OrderedDict 的这种行为,我无法解释。它进行如下你有一个看起来像这样的字典:

exmpl  = OrderedDict([(30, ('A1', 55.0)), (31, ('A2', 125.0)), (32, ('A3', 180.0)), (43, ('A4', float('nan')))])

目标是删除包含nan的字典条目,可以通过以下方式完成:

  1. 使用for循环

    for k,v in dict_cg.items():
    if np.isnan(v[1]):
    exmpl.pop(k)
    print exmpl

    输出将是

     OrderedDict([(30, ('A1', 55.0)), (31, ('A2', 125.0)), (32, ('A3', 180.0))])
  2. 通过字典理解法(同时将其定义为OrderedDict)如下

    exmpl = OrderedDict({k:v for k, v in dict_cg.items() if not np.isnan(v[1])})
    print exmpl

返回

  OrderedDict([(32, ('A3', 180.0)), (30, ('A1', 55.0)), (31, ('A2', 125.0))])

有人可以教育我,为什么在第二种情况下字典会出现困惑。?

最佳答案

因为您正在创建一个带有字典理解的普通字典,它具有任意顺序,您将其传递给OrderedDict 构造函数之后

关于python - OrderedDict 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51062644/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com