📜  Python|展平和逆向排序矩阵

📅  最后修改于: 2022-05-13 01:54:50.450000             🧑  作者: Mango

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]