从String中的某个位置排序

Oge*_*gen 3 python sorting

收集这些类型的字符串:

"foo: a message"
"bar: d message"
"bar: b message"
"foo: c message"
Run Code Online (Sandbox Code Playgroud)

两个字符串foo:bar:长度相同,所以我想从位置索引开始排序5所以我的输出将是......

"foo: a message"
"bar: b message"
"foo: c message"
"bar: d message"
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 7

使用key函数切割每个字符串; 然后使用密钥产生的值进行排序.

sorted(inputlist, key=lambda s: s[5:])
Run Code Online (Sandbox Code Playgroud)

演示:

>>> inputlist = ['foo: a message', 'bar: d message', 'bar: b message', 'foo: c message']
>>> sorted(inputlist, key=lambda s: s[5:])
['foo: a message', 'bar: b message', 'foo: c message', 'bar: d message']
Run Code Online (Sandbox Code Playgroud)

引用sorted()文档:

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