Q&A
実現したいこと
ソースコードを理解する
前提
paizaというwebサイトでpythonを勉強しています。
練習問題をやっていて分からなかったのでネットにあった他の方のソースコードを見たのですが、
疑問が出てきてネットで調べましたが分からなかったため質問させていただきます。
私自身の調べ、理解不足でしたら申し訳ありません。
・4行目のsplit()は入力値をスペースで分けてリスト化するんですよね?なぜmap()の上からlist()でくくってるのでしょうか?
・6行目のlambda式のvalというのは任意で決めた引数で:の後は式を入れるということは分かりましたが、val[1]とはvalというリストの1番目ということでしょうか?そのリストはどこにあるのでしょうか?
問題文
正整数 n が与えられ、数のペアが n 個与えられます。各ペアの最初の数はりんごの個数を、その次の数はバナナの個数を表しています。これらの数のペアを以下の規則に従って、偉い順に並び替えてください。
- ふたつのペアのりんごの数が異なる場合、りんごの数が多い方が偉い(この際、バナナの数は関係ない)。
- りんごの数が同じである場合、バナナの数が多い方が偉い。
入力
2
1 3
2 2
出力
2 2
1 3
該当のソースコード
Python
1n = int(input()) 2lis = [] 3for i in range(n): 4 num = list(map(int, input().strip().split())) 5 lis.append(num) 6sortSecond = lambda val: val[1] 7lis.sort(reverse = True, key = sortSecond) 8lis.sort(reverse = True) 9for i in range(n): 10 print(*lis[i])
試したこと
参考にした資料
https://note.nkmk.me/python-lambda-usage/
調べてみましたがいまいちよく分からず、、、
補足情報(FW/ツールのバージョンなど)
該当の問題
https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_sort_step3/edit?language_uid=python3
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/03/20 07:33