在python中对一个字符串列表进行排序,如果存在一个特定的字符串,则首先出现。

我是python新手,希望有人能帮我解决这个问题。我需要对一个字符串列表进行排序。

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

我需要以这样的方式排序,排序后的列表看起来像这样。

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

按顺序的话,特定的字符串 'tag' 需要总是在前面,其余的字符串要进行排序。我是想想出一个比较器,让我能够做到这一点。但是到目前为止,我还没能做到这一点。如果有人有解决这样的问题的经验,如果你能分享一些想法,我会很感激。

解决方案:

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

列表中的 key 生成一个元组,第一个元素是布尔值,如果该元素不是 'tag'. sort 按第一个元素排序,然后再按第二个元素排序。这样一来 tag 始终是第一位的,因为 False 前期 True.

在其余要素的情况下 – 不等于 'tag' – 排序通常是在第二个元组元素上进行,也就是在值本身上进行词法字符串排序。


sorted 文件:

key 指定一个参数的函数,用于从每个列表元素中提取比较键。key=str.lower. 默认值是 None 直接比较元素)。

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何将网络上的数据以照片的形式导入?

2022-9-9 7:31:21

未分类

如何在 While 循环中增加一个整数并将其转换为字符串?

2022-9-9 7:31:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索