从String中的某个位置排序

时间:2014-09-19 09:38:43

标签: python sorting

收集这些字符串的集合:

"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"

1 个答案:

答案 0 :(得分:7)

使用key函数对每个字符串进行切片;然后使用密钥生成的值进行排序。

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 指定一个参数的函数,该函数用于从每个列表元素中提取比较键:key=str.lower。默认值为None(直接比较元素)。