python数组排序自定义
时间: 2023-11-10 22:04:15 浏览: 71
可以使用Python内置的sorted函数,结合自定义的比较函数来实现数组排序自定义。比如,如果要按照元素的绝对值大小进行排序,可以这样写:
```python
arr = [3, -5, 1, 0, -2]
sorted_arr = sorted(arr, key=lambda x: abs(x))
print(sorted_arr) # [0, 1, -2, 3, -5]
```
其中,key参数指定了一个函数,用来计算每个元素的排序关键字。这里使用了lambda表达式来定义一个匿名函数,它返回每个元素的绝对值。
如果要按照其他的自定义规则进行排序,只需要修改lambda表达式即可。
相关问题
python数组排序函数
Python中有多种方法可以对数组进行排序。其中最常用的方法是使用内置的`sorted()`函数和数组对象的`sort()`方法。
1. 使用`sorted()`函数进行排序:
```python
arr = [3, 1, 4, 2, 5]
sorted_arr = sorted(arr)
print(sorted_arr)
```
输出:`[1, 2, 3, 4, 5]`
2. 使用数组对象的`sort()`方法进行排序:
```python
arr = [3, 1, 4, 2, 5]
arr.sort()
print(arr)
```
输出:`[1, 2, 3, 4, 5]`
这些方法默认按照升序进行排序。如果你想按照降序进行排序,可以使用`reverse=True`参数:
```python
arr = [3, 1, 4, 2, 5]
sorted_arr = sorted(arr, reverse=True)
print(sorted_arr)
```
输出:`[5, 4, 3, 2, 1]`
使用数组对象的`sort()`方法进行降序排序:
```python
arr = [3, 1, 4, 2, 5]
arr.sort(reverse=True)
print(arr)
```
输出:`[5, 4, 3, 2, 1]`
这些方法适用于排序数字数组,如果你要排序字符串数组或自定义对象数组,可以通过传递一个比较函数或关键字参数来实现自定义排序规则。
python编写自定义数组排序函数
以下是python编写自定义数组排序函数的示例代码:
```python
def my_sort(arr):
"""
自定义排序函数,将数组按照元素长度从小到大排序
"""
return sorted(arr, key=len)
# 示例
my_arr = ['apple', 'banana', 'orange', 'grape']
sorted_arr = my_sort(my_arr)
print(sorted_arr) # ['apple', 'grape', 'banana', 'orange']
```
在上面的代码中,`my_sort`函数接受一个数组作为参数,使用`sorted`函数进行排序,其中`key`参数指定了按照元素长度进行排序。最后返回排序后的数组。在示例中,我们将一个包含水果名称的数组作为参数传递给`my_sort`函数,得到按照字母长度从小到大排序的结果。
阅读全文