我正在使用嵌套列表,我想知道如何按字母顺序排列所有列表,同时将它们包含在各自的列表中。你知道吗
例如,如果我有一个包含品牌名称的嵌套列表:
lst = [['Canada Goose', 'Mackage', 'PJ'], ['GAP', 'Fendi', 'Nike'], ['Gucci', 'Adidas']]
及其输出:
sorted_lst = [['Canada Goose', 'Mackage', 'PJ'], ['Fendi', 'GAP', 'Nike'], ['Adidas', 'Gucci']]
我知道在常规列表中可以使用.sort()方法,但是这里似乎不是这样。 我也读了Sorting lists inside nested lists,但我似乎不明白
AppHandwerker的解决方案创建了一个新的数据结构来保存结果,保持原始的
lst
不变。如果这是一个要求,那么这个解决方案是最好的。一般来说,避免变异也是一个好主意,因为它会导致由aliasing引起的细微错误。你知道吗如果您不需要将原始数据保持在未排序的顺序,这里有一个in-place解决方案作为替代方案:就地排序的优点是不需要为保存排序结果的新列表分配额外的内存。你知道吗
正如@SyntaxVoid评论的那样
sorted_lst = [sorted(x) for x in lst]
你应该照你说的做。你知道吗
为了弄清楚这里发生了什么,您正在使用生成器生成一个新的排序列表列表。你知道吗
[]如您所知,这是一个列表
上面所做的和写作差不多
您应该阅读https://realpython.com/python-sort/以获得更多帮助,并了解排序和排序是如何工作的。你知道吗
除了更好地理解SyntaxVoid的答案之外,我建议您使用googlepython生成器,因为我的解释是一个很好的例子,并没有解释我的解释和代码之间潜在的差异,即一个生成d生成器,另一个生成列表。你知道吗
相关问题 更多 >
编程相关推荐