二次的な値リストを使用して、Pythonでmysqlカーソルから返されたタプルのリストをソートしようとしています。注文するために使用さ二次リストによるタプルリストのソート、Pythonの欠損値のスキップ
一覧:
[126028, 255872, 252614, 370772, 460757, 2, 412173, 384558, 111669, 232514]
ソートするタプルのリスト:要素が返される結果に見つからない場合は
[(111669, '4b2c702d01e33f4bf5a816877d186de9.jpg'),
(126028, 'f34d5dcb7311320a81430076604286a5.jpg'),
(232514, 'b53ba7b840ce4e9e39c67e1c55af56b1.jpg'),
(255872, '06225265afb87e7147a611f3e7ec2c4c.jpg'),
(370772, '50502846b5203bd75a17936962ff37ca.jpg'),
(384558, '07f3ea5009dbe63bea5211b9c90144cb.jpg'),
(412173, 'b1e23c2f41e24459c12f1e5299662534.jpg'),
(460757, 'd1b6a265ac26c327684b562be69641f7.jpg')]
理想的には、彼らは排除されなければなりません。ここでは、[252614, 2]
が見つからなかった値を見ることができる新しいソート順、したがって、彼らは除外されるのです。ここで
[(126028, 'f34d5dcb7311320a81430076604286a5.jpg'),
(255872, '06225265afb87e7147a611f3e7ec2c4c.jpg'),
(370772, '50502846b5203bd75a17936962ff37ca.jpg'),
(460757, 'd1b6a265ac26c327684b562be69641f7.jpg'),
(412173, 'b1e23c2f41e24459c12f1e5299662534.jpg'),
(384558, '07f3ea5009dbe63bea5211b9c90144cb.jpg'),
(111669, '4b2c702d01e33f4bf5a816877d186de9.jpg'),
(232514, 'b53ba7b840ce4e9e39c67e1c55af56b1.jpg')]
は、私が試したものです:
btree_ids = [126028, 255872, 252614, 370772, 460757, 2, 412173, 384558, 111669, 232514]
media_id_list = [(111669, '4b2c702d01e33f4bf5a816877d186de9.jpg'),
(126028, 'f34d5dcb7311320a81430076604286a5.jpg'),
(232514, 'b53ba7b840ce4e9e39c67e1c55af56b1.jpg'),
(255872, '06225265afb87e7147a611f3e7ec2c4c.jpg'),
(370772, '50502846b5203bd75a17936962ff37ca.jpg'),
(384558, '07f3ea5009dbe63bea5211b9c90144cb.jpg'),
(412173, 'b1e23c2f41e24459c12f1e5299662534.jpg'),
(460757, 'd1b6a265ac26c327684b562be69641f7.jpg')]
print(sorted(media_id_list, key=lambda x: btree_ids.index(x[0])))
あなた自身の試みですか? –
@WillemVanOnsem – stwhite
コードを追加して、辞書 'd [126028] = f34d5dcb7311320a81430076604286a5.jpg'を作成し、最初のリストを使用して期待どおりの順序で要素を取得することができます。 – furas