求把这段php代码转成python的代码,谢谢!
//倒序排序
function my_sort($a,$b)
{
if ($a==$b) return 0;
return ($a<$b)?1:-1;
}
$arr = array('aaa'=>5,'bbb'=>3,'ccc'=>4);
usort($arr,"my_sort");
echo json_encode($arr);
简单说就是数组倒序排序,然后转成json格式。
求把这段php代码转成python的代码,谢谢!
//倒序排序
function my_sort($a,$b)
{
if ($a==$b) return 0;
return ($a<$b)?1:-1;
}
$arr = array('aaa'=>5,'bbb'=>3,'ccc'=>4);
usort($arr,"my_sort");
echo json_encode($arr);
简单说就是数组倒序排序,然后转成json格式。
import json
arr={"aaa":5,"bbb":3,"ccc":4}
print json.dumps(sorted(arr.values(),reverse=True))#'[5, 4, 3]'
python代码(改造后)
#!/usr/bin/env python
#encoding:utf-8
import json
if __name__ == '__main__':
myDict = {'aaa':5,'bbb':6,'ccc':777}
outDic = sorted(myDict.iteritems(), key=lambda asd: asd[1], reverse=True)
print '排序前的字典,类似于php的array'
print myDict
print '排序后json输出:'
print json.dumps(outDic)
输出:
/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 /Users/luyh/www/python/lesson1/pysort.py
排序前的字典,类似于php的array
{'aaa': 5, 'bbb': 6, 'ccc': 777}
排序后json输出:
[["ccc", 777], ["bbb", 6], ["aaa", 5]]
Process finished with exit code 0
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
PHP 中的 associative array 是一種 ordered mapping (有序映射).
這代表了 Python 中的 dictionary 並非完全相等於 associative array.
其次, json 據我所知並不支援 ordered mapping,所以如果你想要完成這項任務可能要:
使用 Python 中的有序映射對象:
OrderedDict
(請參考OrderedDict)將
OrderedDict
轉為list
再轉為json
到時候要使用該項資料時,必須從
json
中 load 進list
再轉回OrderedDict
以下是 Python3 的代碼讓你參考:
代碼:
結果:
P.S. 任何不清楚的地方都歡迎用評論告訴我,我們可以再討論