私は並べ替えたい要素のリストを持っていますが、それらをすべて並べ替えたいわけではありません。たとえば、のは、私がpeoleのリストを持っているとしましょう:Python:リスト内の特定の要素を並べ替える
lst = [Mary, John, Anna, Peter, Laura, Lisa, Steve]
それらのいくつかはのは[Anna, Lisa, Steve]
を言わせて、仕事を持っています。残りの部分を正確に同じ順序に保ちながら、作業時間数でソート(昇順)し、リストの先頭に移動したいと思います。部分ソート後
Anna.job.hours # 10
Lisa.job.hours # 5
Steve.job.hours # 8
リストは次のようになります:それでは、彼らが働く時間数は、次のようであるとしましょう
私は、元のうちの二つの新しいリストを作成することができます。もちろん、[Lisa, Steve, Anna, Mary, John, Peter, Laura]
1、私はソートしたいものをソートし、それらは私が後だものを達成するために、再度まとめ:straigthforward、これを行うのPython的な方法があれば、私は疑問に思う
with_job = [person for person in lst if person.job]
without_job = [person for person in lst if not person.job]
with_job.sort(key=lambda p: p.job.hours)
lst = with_job + without_job
しかし。
私は十分にPythonを行うためのあなたの方法を見つけます。 2番目のリストは必要ありませんが、それ以外のものはありません。 –