如何返回具有最小值的列的键

ann*_*nne 0 python

我有这本字典:

d= {'1': {         '2': 1,  '3': 0,  '4': 0, '5': 1,  '6': 29 }
   ,'2': {'1': 13,          '3': 1,  '4': 0, '5': 21, '6': 0  }
   ,'3': {'1': 0,  '2': 0,           '4': 1, '5': 0,  '6': 1  }
   ,'4': {'1': 1,  '2': 17, '3': 1,          '5': 2,  '6': 0  }
   ,'5': {'1': 39, '2': 1,  '3': 0,  '4': 0,          '6': 14 }
   ,'6': {'1': 0,  '2': 0,  '3': 43, '4': 1, '5': 0           }
   }
Run Code Online (Sandbox Code Playgroud)

我想写一个函数返回所有值<2(小于2)的列.

到目前为止,我已将字典转换为列表,然后尝试了许多不起作用的事情......我知道答案是第4列.

这是我的最新尝试:

    def findFirstRead(overlaps):
        e= [[d[str(i)].get(str(j), '-') for j in range(1, 7)] for i in range(1, 7)]
        nested_list = e
        for i in map(itemgetter(x),nested_list):
            if i<2:
                return x+1
            else:
                continue
Run Code Online (Sandbox Code Playgroud)

......这是非常错误的

Mar*_*ers 5

以下set和list comprehension列出了列的最大值为2的列:

columns = {c for r, row in d.iteritems() for c in row}

[c for c in columns if max(v.get(c, -1) for v in d.itervalues()) < 2]
Run Code Online (Sandbox Code Playgroud)

这回来了['4'].