(优发娱乐wwwyoufa8) 会php和python的大神进来帮忙转换一段代码

求把这段php代码转成python的代码,谢谢!

//倒序排序
function my_sort$a,$b
{ if $a==$b return 0; return $a<$b?1:-1;
} $arr = arrayaaa=>5,bbb=>3,ccc=>4; usort$arr,"my_sort"; echo json_encode$arr;

简单说就是数组倒序排序,然后转成json格式。

PHP 中的 associative array 是一種 ordered mapping 有序映射.
這代表了 Python 中的 dictionary 並非完全相等於 associative array.

其次, json 據我所知並不支援 ordered mapping,所以如果你想要完成這項任務可能要:

  1. 使用 Python 中的有序映射對象: OrderedDict 請參考OrderedDict

  2. OrderedDict 轉為 list 再轉為 json

  3. 到時候要使用該項資料時,必須從 json 中 load 進 list 再轉回 OrderedDict


以下是 Python3 的代碼讓你參考:

代碼:

import json
from collections import OrderedDict # using OrderedDict
arr = {"aaa":5,"bbb":3,"ccc":4, "ddd":7}
arr = OrderedDictsortedarr.items, key=lambda item: item[1], reverse=True
# or you can create an OrderedDict directly:
# arr = OrderedDict[aaa, 5, bbb, 3, ccc, 4, ddd, 7]
printarr # list
arr = listarr.items
printarr # json dump
json_arr = json.dumpsarr
printjson_arr # json load
arr = OrderedDictjson.loadsjson_arr
printarr

結果:

OrderedDict[ddd, 7, aaa, 5, ccc, 4, bbb, 3]
[ddd, 7, aaa, 5, ccc, 4, bbb, 3]
[["ddd", 7], ["aaa", 5], ["ccc", 4], ["bbb", 3]]
OrderedDict[ddd, 7, aaa, 5, ccc, 4, bbb, 3]

P.S. 任何不清楚的地方都歡迎用評論告訴我,我們可以再討論

import json
arr={"aaa":5,"bbb":3,"ccc":4}
print json.dumpssortedarr.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 = sortedmyDict.iteritems, key=lambda asd: asd[1], reverse=True print 排序前的字典,类似于php的array print myDict print 排序后json输出: print json.dumpsoutDic 

输出:

/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

发表评论

电子邮件地址不会被公开。 必填项已用*标注