2016-10-14 5 views
-1

リスト内のリストをソートしようとしています。これは私が持っているものです。アルファベット順に基づいて内側の名前リストをソートしたいと思います。ループを使用しようとしましたが、無駄です。小さな「リスト」の内部は文字列であるため、リストとして並べ替えることはできません。エラー: 'str' はオブジェクトが属性 'ソート'Pythonリスト内のリストをソートする方法

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

ループ、そして内側のリストにソート呼び出します。 – Carcigenicate

+0

@Estelleはこれまでに何を試しましたか? – user2728397

+0

['名前'を '名前'に変更する](https://www.python.org/dev/peps/pep-0008/) – jamylak

答えて

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

これは、Namesの各サブリストを受け取り、それをソートし、次にそれらのソートされたリストから新しいリストを作成リスト内包です。その後Names建て

+0

申し訳ありませんが、間違ったコードをコピーしました。内側のリストは文字列であるので、ソートすることはできません。 –

+0

@EstelleMontgomery文字列をソートすることができます。上の行を試しましたか? –

2

を一覧表示することになり - リストの方法で:サブリストのインプレースsort()作品あなたがそれらを反復処理する場合:外リスト上

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

for sublist in Names: 
    sublist.sort() 
関連する問題