python – 从String中的某个位置排序

收集这些类型的字符串:

"foo: a message"
"bar: d message"
"bar: b message"
"foo: c message"

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

"foo: a message"
"bar: b message"
"foo: c message"
"bar: d message"

最佳答案 使用键功能切割每个字符串;然后使用密钥产生的值进行排序.

sorted(inputlist, key=lambda s: s[5:])

演示:

>>> 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']

引用sorted() 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).

点赞