python3用sorted排序 50

比如我有一个列表list=[[1,3],[2,5],[1,6],[2,2]]我想用sorted()函数排序,满足下面条件:forxinlist,x[0]保持升序,在此基础... 比如我有一个列表 list = [ [1,3],[2,5],[1,6],[2,2] ]
我想用sorted()函数排序,满足下面条件:
for x in list,x[0]保持升序,在此基础上还有x[1]保持降序
也就是要输出 [ [1,6], [1,3],[2,5],[2,2] ]
以上只是一个例子,这种排序一般情形怎么处理
展开
 我来答
好好写文字
2019-09-27
知道答主
回答量:4
采纳率:0%
帮助的人:3072
展开全部
如果a = [ [1,'3'], [1,'2'],[2,'5'],[2,'4'] ]
有两种解决方式:
方法一:
将字符串转换为int
sorted(list, key=lambda x:(x[0],-int(x[1])))
方法二:
取字符串的第一个字母进行比较
s = sorted(a, key=lambda x:(x[0],x[1][0]))
这个方法当字符串为一串单词时,也有效
追问
方法二好像有点问题
比如 li = [ [1, 'aab'], [2, 'x'], [1, 'ac'] ] ,就不能正确排序
在燕子岩讲印尼语的罗汉松
2018-12-05 · 超过25用户采纳过TA的回答
知道答主
回答量:54
采纳率:87%
帮助的人:12.7万
展开全部
list = [ [1,3],[2,5],[1,6],[2,2]]
s = sorted(list, key=lambda student:(student[0],-student[1]))
追问
如果x[1]不是数字,而是字符串怎么办,例如:
a = [ [1,'1'], [1,'2'],[2,'5'],[2,'4'] ]
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式