KeyError循环每个键的多个值

这个问题在这里已经有了答案:

  • 使用'for'循环遍历字典12个答案

  • T是关键,所以你应该for T in instruments迭代for T in instruments

    import math
    
    instruments = {} 
    
    def add_instrument(par, T, coup, price, compounding_freq = 2):
      instruments[T] = (par, coup, price, compounding_freq)
    
    add_instrument(100, 0.25, 0., 97.5)
    add_instrument(100, 0.5, 0., 94.9)
    add_instrument(100, 1.0, 3., 90.)
    add_instrument(100, 1.5, 8, 96., 2)
    
    for T in instruments:
        par, coupon, price, freq = instruments[T]
        if coupon == 0:
            print(T)
    

    如果您for T in instruments.items()使用for T in instruments.items()T将成为(key, value)的元组。 当你寻找instruments[T]时,字典中没有这样的键。

    如果你坚持使用items()你也可以直接解压值元组:

    for t, (par, coup, price, freq) in instruments.items():
        if coup == 0:
            print(t)
    

    它输出:

    0.25
    0.5
    
    链接地址: http://www.djcxy.com/p/30379.html

    上一篇: KeyError looping through multiple values per key

    下一篇: Parsing nested JSON response Python