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

在python中对字符串列表进行排序,使得特定字符串(如果存在)首先

发布时间:2020-12-20 12:31:07 所属栏目:Python 来源:网络整理
导读:我是 python的新手,希望有人可以帮我解决这个问题.我需要对字符串列表进行排序: s = ['status','value','place','tag'] 我需要排序,排序列表如下所示: s_sorted = ['tag','status','value'] 换句话说,特定的字符串’tag’需要始终在前面,其余的字符串将被
我是 python的新手,希望有人可以帮我解决这个问题.我需要对字符串列表进行排序:

s = ['status','value','place','tag']

我需要排序,排序列表如下所示:

s_sorted = ['tag','status','value']

换句话说,特定的字符串’tag’需要始终在前面,其余的字符串将被排序.我试图想出一个可以让我这样做的比较器.但到目前为止我还没能做到这一点.如果有人有解决这样的问题的经验,如果你能分享一些想法,我将不胜感激.

解决方法

s = ['status','tag']
s_sorted = sorted(s,key=lambda x:(x!='tag',x))

密钥生成一个元组,如果元素不是’tag’,则第一个元素为boolean.排序按第一个元素排序,然后排序第二个元素.这种方式标记始终是第一个因为False在True之前排序.

在剩余元素的情况下 – 不等于’tag’ – 排序通常在第二个元组元素上完成,这是对值本身的字典字符串排序.

从排序的documentation:

key specifies a function of one argument that is used to extract a comparison key from each list element: key=str.lower. The default value is None (compare the elements directly).

(编辑:李大同)

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

    推荐文章
      热点阅读