会php和python的大神进来帮忙转换一段代码

php中文网
发布: 2016-06-06 20:09:06
原创
1602人浏览过

求把这段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格式。

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

立即学习PHP免费学习笔记(深入)”;

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

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

  2. OrderedDict 轉為 list 再轉為 json

    AppStruct
    AppStruct

    无代码应用开发平台

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


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

代碼:

import json
from collections import OrderedDict

# using OrderedDict
arr = {"aaa":5,"bbb":3,"ccc":4, "ddd":7}
arr = OrderedDict(sorted(arr.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)])
print(arr)

# list
arr = list(arr.items())
print(arr)

# json dump
json_arr = json.dumps(arr)
print(json_arr)

# json load
arr = OrderedDict(json.loads(json_arr))
print(arr)
登录后复制

結果:

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.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
登录后复制
相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号