【问题标题】:Python: print the dictionary elements which has multiple values assigned for each keyPython:打印为每个键分配了多个值的字典元素
【发布时间】:2016-09-20 11:31:11
【问题描述】:

我有一本像下面这样的字典:

{    "amplifier": ["t_audio"],
     "airbag": ["t_trigger"], 
     "trigger": ["t_sensor1", "t_sensor2"],  
     "hu": ["t_fused"], 
     "cam": ["t_front", "t_ldw", "t_left", "t_nivi", "t_rear_camera", "t_right"], 
     "video_screen": ["t_video"]    }

如您所见,有些元素为每个键分配了多个值。我想将这些值提取为字符串,分别在(最好)一个 for 循环中,然后将它们打印出来。打印出来的结果应该是这样的:

group(amplifier, t_audio)
group(airbag, t_trigger)
group(trigger, t_sensor1)
group(trigger, t_sensor2)
group(hu, t_fused)
group(cam, t_front)
group(cam, t_ldw)
...
...

我可以轻松地在普通字典上执行此操作,其中每个键只有一个值,但对此几乎感到困惑(抱歉,如果我是 Python 的新手......)。对于如何获得此结果,我们将不胜感激。

【问题讨论】:

  • 您可能想要创建一个嵌套循环来遍历字典和该字典中的每个列表,例如for key, lst in dict { for val in lst { ...
  • 您知道,每个键都有精确的一个值。这些值恰好是另一个容器,即列表。

标签: python list dictionary


【解决方案1】:

非常简单:遍历字典中的每个键。由于每个值都将是一个包含一个或多个元素的列表,因此只需遍历它们并打印您需要的字符串:

d = {'amplifier': ['t_audio'], 'hu': ['t_fused'], 'trigger': ['t_sensor1', 't_sensor2'], 'cam': ['t_front', 't_ldw', 't_left', 't_nivi', 't_rear_camera', 't_right'], 'airbag': ['t_trigger'], 'video_screen': ['t_video']}

for key in d:
    for value in d[key]: 
        print 'group({},{})'.format(key,value)

你可以在这里看到它的实际效果:https://eval.in/645071

【讨论】:

    【解决方案2】:
    for key in dict:
        for value in dict[key]:
            print value
    

    【讨论】:

      【解决方案3】:
      for k, v in mydict.iteritems():
          for vv in v:
              print "group(%s,%s)" % (k,vv)
              #or
              print "group(",k,",",vv,")"
              #or the python 3 format syntax
      

      【讨论】:

      • 首先,: 在第一个循环结束时丢失。其次,您可能希望在 print 语句中使用.format(),以便获得更多用户可读的代码。
      猜你喜欢
      • 1970-01-01
      • 2013-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-20
      • 1970-01-01
      相关资源
      最近更新 更多