Python|展平和逆向排序矩阵
列表列表的扁平化已经讨论过很多次了,但有时除了扁平化之外,还需要以反向排序的方式获取字符串。让我们讨论一些可以做到这一点的方法。
方法 #1:使用sorted() + reverse
+ 列表理解
这个想法类似于展平列表列表,但除此之外,我们添加了一个 sorted函数以及 reverse 作为键,对列表理解完成的返回的展平列表进行反向排序。
# Python3 code to demonstrate
# Flatten and Reverse Sort Matrix
# using sorted + list comprehension
# initializing list of list
test_list = [[3, 5], [7, 3, 9], [1, 12]]
# printing original list of list
print("The original list : " + str(test_list))
# using sorted + list comprehension
# Flatten and Reverse Sort Matrix
res = sorted([j for i in test_list for j in i], reverse = True)
# print result
print("The reverse sorted and flattened list : " + str(res))
输出 :
The original list : [[3, 5], [7, 3, 9], [1, 12]]
The reverse sorted and flattened list : [12, 9, 7, 5, 3, 3, 1]
方法#2:使用itertools.chain() + sorted() + reverse
上面列表理解完成的任务也可以使用链接列表元素的chain函数执行,然后sorted函数在reverse的帮助下完成排序任务以进行反向排序。
# Python3 code to demonstrate
# Flatten and Reverse Sort Matrix
# using itertools.chain() + sorted()
from itertools import chain
# initializing list of list
test_list = [[3, 5], [7, 3, 9], [1, 12]]
# printing original list of list
print("The original list : " + str(test_list))
# using itertools.chain() + sorted()
# Flatten and Reverse Sort Matrix
res = sorted(chain(*test_list), reverse = True)
# print result
print("The reverse sorted and flattened list : " + str(res))
输出 :
The original list : [[3, 5], [7, 3, 9], [1, 12]]
The reverse sorted and flattened list : [12, 9, 7, 5, 3, 3, 1]