Python如何对列表中的列表进行排序

时间:2016-10-14 13:33:23

标签: python string list sorting

我正在尝试对列表中的列表进行排序。这就是我所拥有的。我想根据字母顺序对内部名单进行排序。尝试过使用循环但无济于事。内部较小的'列表'恰好是字符串,所以我不能将它们排序()为列表。错误:'str'对象没有属性'sort'

Names = [
    [['John'] ['Andrea', 'Regina', 'Candice'], ['Charlotte', 'Melanie'], 
    ['Claudia', 'Lace', 'Karen'] ['Ronald', 'Freddy'], 
    ['James', 'Luke', 'Ben', 'Nick']]
]

我希望将其分类为:

[
    [['John'] ['Andrea', 'Candice', 'Regina'], ['Charlotte', 'Melanie'], 
    ['Claudia', 'Karen', 'Lace'] ['Freddy', 'Ronald'], 
    ['Ben', 'James', 'Luke', 'Nick']]
]

谢谢。 编辑:对不起,我在之前的代码中犯了一个错误。我已经编辑了它。

2 个答案:

答案 0 :(得分:4)

Names = [sorted(sublist) for sublist in Names]

这是一个列表理解,它接受Names的每个子列表,对其进行排序,然后从这些排序列表中构建新列表。然后,它会使Names列出

答案 1 :(得分:2)

内置列表方法:sort()如果迭代它们,就会在子列表上就地工作:

Names = [['John', 'Andrea', 'Regina', 'Candice', 'Charlotte', 'Melanie'], ['Claudia', 'Lace', 'Karen', 'Ronald', 'Freddy'], ['James', 'Luke', 'Ben', 'Nick']

for sublist in Names:
    sublist.sort()