所以这是我的代码。我将列表中的项目分开并打印出来:
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
如何一起打印和排序嵌套列表中的项目?
答案 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)))
,但是)