在Python中排序和打印嵌套字符串

时间:2017-07-31 17:02:34

标签: python list sorting printing

所以这是我的代码。我将列表中的项目分开并打印出来:

mylist = [["Orange", "Banana"], ["Grape", "Orange", "Apple"]]

for s in mylist:
print '\n'.join(s)

Orange
Banana
Apple
Grape
Orange

但我希望列表按字母顺序排列。我试过这个,但它只对其巢内的物品进行分类:

for s in mylist:
print '\n'.join(sorted(s))

Banana
Orange
Apple
Grape
Orange

如何一起打印和排序嵌套列表中的项目?

1 个答案:

答案 0 :(得分:1)

基本上它结合了扁平化和分类。展平在这里以各种方式处理:Making a flat list out of list of lists in Python。排序是内置的。

我的版本:

链接使用itertools.chain 然后排序:

import itertools

for i in sorted(itertools.chain.from_iterable(mylist)):
    print(i)

或者在没有itertools的情况下,生成列表推导(其中包含将list传递给sorted的好处,因此sorted不需要强制迭代):< / p>

for i in sorted([x for sl in mylist for x in sl]):
    print(i)

(最有效的方式可能是sorted(list(itertools.chain.from_iterable(mylist))),但是)