lambda表达式pythonlist_Python 使用Lambda对list(列表)中指定格式字符串元素排序方法...
示例list的代碼:lst = ['b-3', 'a-2', 'c-4', 'd-2']
# result:
# ['a-2', 'd-2', 'b-3', 'c-4']
1、使用enumerate()和reversed()實(shí)現(xiàn)排序sorted(lst,key = lambda s : [x if i else int(x) for i,x in enumerate(reversed(s.split("-")))])
2、使用zip()和reversed()實(shí)現(xiàn)排序lst = ['b-3', 'a-2', 'c-4', 'd-2']
res = sorted(lst, key=lambda x: tuple(f(a) for f, a in zip((int, str), reversed(x.split('-')))))
# 或者
res = sorted(lst, key=lambda x: (lambda y: (int(y[1]), y[0]))(x.split('-')))
print(res)
['a-2', 'd-2', 'b-3', 'c-4']
3、使用toolz實(shí)現(xiàn)排序from toolz import compose
res = sorted(lst, key=compose(lambda x: (int(x[1]), x[0]), lambda x: x.split('-')))
4、使用for實(shí)現(xiàn)排序# 用list
>>> sorted(lst, key=lambda x: [(int(num), text) for text, num in [x.split('-')]])
['a-2', 'd-2', 'b-3', 'c-4']
# 使用next()
>>> sorted(lst, key=lambda x: next((int(num), text) for text, num in [x.split('-')]))
['a-2', 'd-2', 'b-3', 'c-4']
總結(jié)
以上是生活随笔為你收集整理的lambda表达式pythonlist_Python 使用Lambda对list(列表)中指定格式字符串元素排序方法...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html读取本地txt_利用MySQL/
- 下一篇: python3和2的区别大吗_pytho