【问题标题】:Python omits some entries while itereting over dictionary, why?Python在迭代字典时省略了一些条目,为什么?
【发布时间】:2016-02-25 17:10:42
【问题描述】:

这是我的字典和迭代方法:

update_config_switch = OrderedDict([
    (mode0               , self.mode0Box),
    (config_list[14]     , self.baudrate0Box),
    (config_list[1]      , self.RX_size_uart0Box),
    (config_list[2]      , self.RX_timeout_uart0Box),
    (config_list[3]      , self.TX_size_uart0Box),
    (mode1               , self.mode1Box),
    (config_list[15]     , self.baudrate1Box),
    (config_list[5]      , self.RX_size_uart1Box),
    (config_list[6]      , self.RX_timeout_uart1Box),
    (config_list[7]      , self.TX_size_uart1Box),
    (config_list[8]      , self.RX_size_socket0Box),
    (config_list[9]      , self.RX_timeout_socket0Box),
    (config_list[10]     , self.TX_size_socket0Box),
    (config_list[11]     , self.RX_size_socket1Box),
    (config_list[12]     , self.RX_timeout_socket1Box),
    (config_list[13]     , self.TX_size_socket1Box)])
    print update_config_switch
    for key, val in update_config_switch.iteritems():
        print key
        try:
            index = val.findText(str(key))
            if index >= 0:
                val.setCurrentIndex(index)
        except:
            val.setProperty("value", int(key))

这个 dict 应该有 16 个项目,但是当我打印它或每次循环运行时打印 key 时,我只得到 7 个结果,如下所示:

OrderedDict([('eth', ), (9600, ), (300, ), (500, ), ('dev', ), (115200, ), (1000, )])

为什么会这样以及如何解决这个问题?

【问题讨论】:

  • 您是否确认您有 16 个 unique 键?

标签: python dictionary collections iteration


【解决方案1】:

如果您只有 7 个结果,则您的数据中必须有重复的键。您可以通过以下方式轻松验证您拥有多少个唯一密钥:

print(len(set(config_list)))

【讨论】:

  • 嗯,其实可能是这样的……我没想到。谢谢
猜你喜欢
  • 1970-01-01
  • 2021-03-14
  • 2017-02-12
  • 1970-01-01
  • 2018-02-04
  • 1970-01-01
  • 2018-09-29
  • 2022-01-16
  • 1970-01-01
相关资源
最近更新 更多