回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>下面的列表理解给出了所需的输出,但似乎有点长,因为我必须具体引用子字典中的每个值,因为每个主键的值都是另一个字典。有没有一种方法可以让我的列表理解变短,并且仍然提供相同的输出?如果可能的话,我在找一个单一的解决方案。在</p>
<pre><code>myDict = {'pKey_b': {'val3': 'vb3', 'val1': 'vb1', 'val4': 'vb4', 'val2': 'vb2'}, 'pKey_a': {'val3': 'va3', 'val1': 'va1', 'val4': 'va4', 'val2': 'va2'}, 'pKey_e': {'val3': 've3', 'val1': 've1', 'val4': 've4', 'val2': 've2'}, 'pKey_d': {'val3': 'vd3', 'val1': 'vd1', 'val4': 'vd4', 'val2': 'vd2'}, 'pKey_c': {'val3': 'vc3', 'val1': 'vc1', 'val4': 'vc4', 'val2': 'vc2'}}
myListComp = sorted(sorted([k, v.values()[0], v.values()[1], v.values()[2], v.values()[3]]) for k, v in myDict.items())
print myListComp
'''
[
['pKey_a', 'va1', 'va2', 'va3', 'va4'],
['pKey_b', 'vb1', 'vb2', 'vb3', 'vb4'],
['pKey_c', 'vc1', 'vc2', 'vc3', 'vc4'],
['pKey_d', 'vd1', 'vd2', 'vd3', 'vd4'],
['pKey_e', 've1', 've2', 've3', 've4']
]
'''
</code></pre>