enumerateで取得した値でソートする方法


数値データが格納されているリスト`l = [4, 8, 1, 2, 9, 0]`に対して，元のインデックスと紐付けた状態で小さい順にソートしたいです．  
インデックスを取得するためにenumerateを用いて以下のようにしました．

[code]

    data=[]
    for idx, value in enumerate(l):
        data.append([idx, value])  # [[0, 4], [1, 8], [2, 1], [3, 2], [4, 9], [5, 0]]
    
[/code]

`data[i][0]`にインデックス値，`data[i][1]`に数値データが入っている状態です．この状態から，数値データを小さい順にソートしたいのですが，どうすればいいかわからず困っています．  
この例での期待する出力は，`[[5, 0], [2, 1], [3, 2], [0, 4], [1, 8], [4, 9]]`となります．  
どなたかわかる方がいらっしゃいましたらご回答よろしくお願いします




中身が tuple でもよいのであれば以下の様に、

[code]

    l = [4, 8, 1, 2, 9, 0]
    list(sorted(enumerate(l), key=lambda x: x[1]))
    =>
    [(5, 0), (2, 1), (3, 2), (0, 4), (1, 8), (4, 9)]
    
[/code]

どうしても list で、という場合には

[code]

    list(map(list, sorted(enumerate(l), key=lambda x: x[1])))
    =>
    [[5, 0], [2, 1], [3, 2], [0, 4], [1, 8], [4, 9]]
    
[/code]

としてもよろしいかと思います。




中身が tuple でもよいのであれば以下の様に、

[code]

    l = [4, 8, 1, 2, 9, 0]
    list(sorted(enumerate(l), key=lambda x: x[1]))
    =>
    [(5, 0), (2, 1), (3, 2), (0, 4), (1, 8), (4, 9)]
    
[/code]

どうしても list で、という場合には

[code]

    list(map(list, sorted(enumerate(l), key=lambda x: x[1])))
    =>
    [[5, 0], [2, 1], [3, 2], [0, 4], [1, 8], [4, 9]]
    
[/code]

としてもよろしいかと思います。

