Python中对Tuple之间排序时如何指定第几个元素为关键字排序的问题

因为Core Python Programming上的一个作业7-3

要求将一个Dictionary的key和value同时显示,并按key排序。

 

我做完之后就考虑如果要求按value排序呢?或者说多个Tuple之间排序时如果指定用第几个元素为关键字?

 

google了一下找到了答案,记一下:

 

解决方案有二:

 

方法一是采用lambda语法。

 

Python 支持一种有趣的语法,它允许你快速定义单行的最小函数。这些叫做 lambda 的函数,是从 Lisp 借用来的,可以用在任何需要函数的地方。

 

 

 

所以这题可以做为:

 

结果为:[('address', '202.101.1.22'), ('port', '8080'), ('pwd', 'athy'), ('protocol', 'http'), ('name', 'thy')]

 

方法二是采用operator模块的itemgetter函数

结果当然是一样的。

 

最后看看默认参数(即sorted(b))的结果:

[('address', '202.101.1.22'), ('name', 'thy'), ('port', '8080'), ('protocol', 'http'), ('pwd', 'athy')]

 

 

其中我更喜欢lambda的这样语法,毕竟这是从语言级来解决的。据说Boost库中也引入了lambda,真是不错!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值