【问题标题】:python iterating the element inpython迭代元素
【发布时间】:2021-02-20 05:20:26
【问题描述】:
 dict = {46:  [{'picker_name': 'Table_1', 'picker_id': 970}], 
    47:  [{'picker_name': 'Table_7', 'picker_id': 994}, {'picker_name': 'Table_9', 'picker_id': 999}]}

我想访问每个键的唯一的picker_id 回答这个问题:- 46 : 970, 47 : 994, 999 我也尝试过,但我没有得到正确的逻辑请帮助我,我被困了很长时间。我是python新手

这些是我的逻辑:-

for key in dict:
    for i in range(len(dict[key])):
        for it in dict[key][i].values():
            print(it)

我得到的输出是:-

Table_1
970
Table_7
994
Table_9
999 

【问题讨论】:

    标签: python list dictionary syntax


    【解决方案1】:

    这里可以进行两次迭代,您不需要使用range()

    d = {46:  [{'picker_name': 'Table_1', 'picker_id': 970}], 
    47:  [{'picker_name': 'Table_7', 'picker_id': 994}, {'picker_name': 'Table_9', 'picker_id': 999}]}
    
    for k, v in d.items():
        for d in v:
            print(k, d['picker_id'])
    

    输出

    46 970
    47 994
    47 999
    

    【讨论】:

      【解决方案2】:

      使用地图的另一种解决方案

      d = {46:  [{'picker_name': 'Table_1', 'picker_id': 970}],
           47:  [{'picker_name': 'Table_7', 'picker_id': 994}, {'picker_name': 'Table_9', 'picker_id': 999}]}
      
      res = {}
      for key, pickers in d.items():
          res[key] = list(map(lambda picker: picker['picker_id'], pickers))
      print(res) #{46: [970], 47: [994, 999]}
      

      【讨论】:

        【解决方案3】:

        我会尽力澄清这个概念。 首先,使用 .items() 在字典中循环返回一个字典视图对象,该对象以键值对列表的形式提供字典元素的动态视图。

        dict_items([(46, [{'picker_name': 'Table_1', 'picker_id': 970}]), (47, [{'picker_name': 'Table_7', 'picker_id': 994}, {'picker_name': 'Table_9', 'picker_id': 999}])])
        

        在下面的循环中,键将保存第一个值,即 46, 将保存第二个项目,即列表。

        现在在值列表中运行循环。元素代表列表中的每个元素。由于列表的每个元素都是一个字典,因此您可以使用键 'picked_id' 访问 'picked_id' 的值。

        for key,value in dict.items():
            for elements in value:
                print(key,elements['picker_id'])
        

        我希望这会有所帮助!祝一切顺利!祝你学习 Python 好运。

        输出:

        46 970
        47 994
        47 999
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-19
          • 1970-01-01
          • 2020-02-04
          • 2016-04-20
          • 2021-04-30
          • 1970-01-01
          相关资源
          最近更新 更多