使用用户定义的函数在 Python 中对列表进行排序
Posted
技术标签:
【中文标题】使用用户定义的函数在 Python 中对列表进行排序【英文标题】:Sort List in Python using user defined function 【发布时间】:2018-06-15 08:32:22 【问题描述】:sortedL1ist = [2343, 323, 34254, 49, 595]
arr = [2343, 323, 34254, 49, 595]
Like in c++ **:** sort(arr,arr+n,AB)
AB(int x, int y)
return (x%10)<(y%10)
这个概念如何在python中实现,比如按照个位数字排序?
【问题讨论】:
不是每个懂 Python 的人都懂 C++。请您解释您的逻辑并给出预期的输出,包括minimal reproducible example。 【参考方案1】:您可以将排序依据定义为 lambda 函数,例如
some_list = [2343, 323, 34254, 49, 595]
sorted_list = sorted(some_list, key=lambda x : x%10)
print(sorted_list)
输出
[2343, 323, 34254, 595, 49]
您可以使用类似这样的比较方法采用旧方法
def custom_compare(x, y):
return x%10 - y%10
print(sorted(some_list, cmp=custom_compare))
这将为您提供相同的输出
注意这仅适用于 python 2.x 版本,key
是 python 3.x 中新的更好的方法
【讨论】:
以上是关于使用用户定义的函数在 Python 中对列表进行排序的主要内容,如果未能解决你的问题,请参考以下文章
如何编写自定义函数以在 python 中对数据帧进行排序和透视