例如是一个字典,a = {1:2,2:3,3:4}
一个字典,并b= [3,1]
我怎么能进行排序以列表的蟒蛇顺序
我想排序a
得到一个元组列表,如果在a
键是b
,按照b
的顺序对它们进行排序,否则将它们放在元组列表的末尾。
我不喜欢这样写道:
sorted(a.items(), key = lambda (k, v): b.index(k) if k in b else a.keys().index(k))
,但是,我认为这是错误的。
所以我可以用python来做。
感谢
预期产量是多少? – Volatility 2013-02-16 10:16:59
我认为这是很好的解决方案(如果它提出了正确的答案..这个else语句也许就是这样),更多pythonic的方式将使用[itertools](http://docs.python.org/2.7/library/itertools .html)magic – alonisser 2013-02-16 10:25:18
您的测试数据过于狭窄,您的代码会得到与@mbatchkarov相同的结果 - 但是如果更改了示例数据,则输出会发生变化,但它们并不相同。 ''a = {2:9,9:7,6:5,5:6,1:2,9:8,2:3,4:5,3:4,6:7}' – sotapme 2013-02-16 11:27:25