加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python:任意顺序

发布时间:2020-12-20 13:01:48 所属栏目:Python 来源:网络整理
导读:在Oracle SQL中,有一个要按如下顺序排序的功能: order by decode("carrot" = 2,"banana" = 1,"apple" = 3) 在python中实现它的最佳方法是什么? 我希望能够通过它的键来命令一个字典.而且该顺序不一定按字母顺序或任何顺序 – 我确定顺序. 解决方法 你不能
在Oracle SQL中,有一个要按如下顺序排序的功能:

order by decode("carrot" = 2,"banana" = 1,"apple" = 3)

在python中实现它的最佳方法是什么?

我希望能够通过它的键来命令一个字典.而且该顺序不一定按字母顺序或任何顺序 – 我确定顺序.

解决方法

你不能自己订购一个字典,但你可以将它转换为(键,值)元组列表,你可以对它进行排序.

您使用.items()方法来执行此操作.例如,

>>> {'a': 1,'b': 2}
{'a': 1,'b': 2}
>>> {'a': 1,'b': 2}.items()
[('a',1),('b',2)]

最有效的排序方法是使用关键功能.使用cmp效率较低,因为必须为每对项目调用它,使用key只需要为每个项目调用一次.只需指定一个可调用项,它将根据项目的排序方式对项进行转换:

sorted(somedict.items(),key=lambda x: {'carrot': 2,'banana': 1,'apple':3}[x[0]])

上面定义了一个dict,它指定了你想要的键的自定义顺序,lambda返回旧dict中每个键的值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读