Python程序使用lambda根据列对列表进行排序
给定一个列表,任务是使用 lambda 方法根据列对列表进行排序。
例子:
Input :
array = [[1, 3, 3], [2, 1, 2], [3, 2, 1]]
Output :
Sorted array specific to column 0, [[1, 3, 3], [2, 1, 2], [3, 2, 1]]
Sorted array specific to column 1, [[2, 1, 2], [3, 2, 1], [1, 3, 3]]
Sorted array specific to column 2, [[3, 2, 1], [2, 1, 2], [1, 3, 3]]
Input :
array = [[‘java’, 1995], [‘c++’, 1983], [‘python’, 1989]]
Output :
Sorted array specific to column 0, [[‘c++’, 1983], [‘java’, 1995], [‘python’, 1989]]
Sorted array specific to column 1, [[‘c++’, 1983], [‘python’, 1989], [‘java’, 1995]]
方法:
- Python中的
sorted()
内置函数从可迭代对象中提供了一个新的排序列表。 - 在进行比较之前,指定要在每个列表元素上调用的函数的关键参数。
- lambda 用作迭代每个元素的函数。
-
key = lambda x:x[i]
这里 i 是对整个列表进行排序的列。
下面是实现。
# Python code to sorting list
# according to the column
# sortarray function is defined
def sortarray(array):
for i in range(len(array[0])):
# sorting array in ascending
# order specific to column i,
# here i is the column index
sortedcolumn = sorted(array, key = lambda x:x[i])
# After sorting array Column 1
print("Sorted array specific to column {}, \
{}".format(i, sortedcolumn))
# Driver code
if __name__ == '__main__':
# array of size 3 X 2
array = [['java', 1995], ['c++', 1983],
['python', 1989]]
# passing array in sortarray function
sortarray(array)
Sorted array specific to column 0, [[‘c++’, 1983], [‘java’, 1995], [‘python’, 1989]]
Sorted array specific to column 1, [[‘c++’, 1983], [‘python’, 1989], [‘java’, 1995]]