ロット:
map(lambda score_str: int(score_str), i.keys())
表現lambda score_str: int(score_str)
はちょうど、int
として、あなたがやっているすべての関数を呼び出している場合lambda
をマップする必要が書かれたことはできませんでした。
辞書を繰り返す場合は、i.keys()
に電話してください。ちょうどi
を使用してください。
list(map(int, i))
が、それはあなたがリストの内包表記を使用する場合(少し長いが)もっと簡単に読み取ります:あなたが与え
また
scores = scores + [int(score_str) for score_str in i]
をネストできますリストの内包内部ループのためのしかし、それよりも短い方が必ずしも良いとは言えないので、私はそれに反対します。
scores = [int(score_str) for i in data for score_str in i]
同じは最後の部分に適用されます。
sorted_scores = list(map(lambda score_int: str(score_int), reversed(sorted(scores))))
だけで使用できます
sorted_scores = [ str(score_int) for score_int in sorted(scores, reverse=True)]
あなたはソート時reverse
パラメータを使用しての習慣を身に取得する必要があり、それはdoesnのここでは問題はありませんが、逆ソートがソートと逆転と同じではない状況があります。
また、あなたがsort
にkey
パラメータを使用して鋳造を避けることができます:一般的に
scores = [score_str for i in data for score_str in i]
sorted_scores = sorted(scores, reverse=True, key=int)
は、なぜそれがよりコンパクトにする必要があるんですか? ** working code **を持っていれば、(1つの関数以上に)改善できると思います。[codereview.se]を参照してください。 – jonrsharpe
また、「def文」によって、* function *を意味しますか? –
私はあなたが欲しいものを理解していませんが、これで目標を達成することができます:return data.keys.sort() – Sagar