Pythonを降順に並べ替えます

okwaves2024-01-24  6

位置によって降順に並べ替えたいと思います。 与えられた条件:

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)]

降順に変更されたソートキーにも注目してください。

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。