Python|排序展平列表列表
列表列表的扁平化之前已经讨论过,但有时除了扁平化之外,还需要以排序的方式获取字符串。让我们讨论一些可以做到这一点的方法。
方法 #1:使用sorted()
+ 列表推导
这个想法类似于扁平化列表列表,但除此之外,我们添加了一个排序函数来对列表理解完成的返回扁平化列表进行排序。
# Python3 code to demonstrate
# sort flatten list of list
# 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
# sort flatten list of list
res = sorted([j for i in test_list for j in i])
# print result
print("The sorted and flattened list : " + str(res))
输出 :
The original list : [[3, 5], [7, 3, 9], [1, 12]]
The sorted and flattened list : [1, 3, 3, 5, 7, 9, 12]
方法#2:使用itertools.chain() + sorted()
上面列表理解完成的任务也可以使用链接列表元素的链函数执行,然后排序函数执行排序任务。
# Python3 code to demonstrate
# sort flatten list of list
# 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()
# sort flatten list of list
res = sorted(chain(*test_list))
# print result
print("The sorted and flattened list : " + str(res))
输出 :
The original list : [[3, 5], [7, 3, 9], [1, 12]]
The sorted and flattened list : [1, 3, 3, 5, 7, 9, 12]