位置によって降順に並べ替えたいと思います。
与えられた条件:
name = ["Shawn", "Patrick", "Nancy", "Viola"]
position = [3,1,4,2]
l =[name,positions]
l.sort(key=lambda x: x[1])
それで、期待される結果は何ですか?
– ザ グランド J
2020 年 9 月 3 日 3:12
NameError: 名前 '位置'定義されていません
– inspectorG4dget
20 年 9 月 3 日20 時 3 時 12 分
これであなたの質問は解決しましたか?別のリストの値に基づいてリストを並べ替えますか?
– リッチーV
2020 年 9 月 3 日 3:16
2
list(zip(*sorted(zip(名前, 位置), key=operator.itemgetter(1), reverse=True)))[0]
– inspectorG4dget
2020 年 9 月 3 日 3:17
------------------------
ジッパーを使用して、対応する位置にあるアイテムをペアにします。 (これにより反復可能が生成されるため、リストに変換するか、.sort ではなくソートを使用してください。)
順序を逆にするには、キーとして -x[1] を使用するか、reverse=True を渡します。
(タイプミス) 位置変数に一貫した名前を付けます。
(スタイル) l は 1 や I と混同される可能性があるため、変数名として使用しないでください。
name = ["Shawn", "Patrick", "Nancy", "Viola"]
position = [3, 1, 4, 2]
l = zip(name, position)
l = sorted(l, key=lambda x: x[1], reverse=True)
------------------------
l = [名前, 位置] を l = list(zip(名前,位置)) に変更します:
>>> name = ["Shawn", "Patrick", "Nancy", "Viola"]
>>> position = [3,1,4,2]
>>> l = list(zip(name,position))
>>> l.sort(key=lambda x: -x[1])
>>> l
[('Nancy', 4), ('Shawn', 3), ('Viola', 2), ('Patrick', 1)]
降順に変更されたソートキーにも注目してください。