python百例練習の第四例-sort()、sorted()

3422 ワード

に質問
スペースで区切られた一連の単語を入力として受け入れ、重複するすべての単語を削除し、アルファベット順に並べ替えて印刷するプログラムを作成します.次の入力をプログラムに提供すると仮定します:hello world and practice makes perfect and hello world againその後、出力はagain and hello makes perfect practice world
ヒント:入力データを問題に提供する場合は、コンソール入力と仮定します.setコンテナを使用して重複するデータを自動的に削除し、sorted()を使用してデータをソートします.
コード#コード#
#     sort():
a = input('        :')
b = list(set(a.split(' ')))
b.sort()
print(' '.join(b))
#     sroted():
a = input('        :')
b = sorted(list(set(a.split(' '))))
print(' '.join(b))

両方の結果は同じですが、元のシーケンスに対する操作は異なります.
sort():元のシーケンスで変更します.前にソート文をb=list(set(a.split(’'))と書きました.sort()は、print(b)であるが、返されるのは:None、すなわちbというリストが存在しないことである.それから調べてみると、作成された変数bはsort()関数を受信するために生成された戻り値であり、sort自体の論理はaをソートしているが、その後、新しいリスト、すなわち戻り値が返されていないため、yでその戻り値を受信し、もちろんNoneである.(1つのファイルに相当して、あなたは学友aのコンピュータの上で直して、それから学友bはあなたにこのファイルを彼に送って、しかし実はあなたはこのファイルがなくて、このファイルは依然として学友aのコンピュータの上で、だから学友bはこのファイルを手に入れられません)
sorted():既存のリストの要素を変更せずに、ソート後の新しいリストを返します.戻り値があれば、新しい変数を作成して受信したり、直接print(’.join(sorted(list(set(a.split(’')))を作成したりすることができます.
set():無秩序な重複しない要素セットを作成し、関係テストを行い、重複データを削除し、交差、差セット、並列セットなどを計算することができます.ただし、リスト[]ではなくコレクション{}(戻り値がある)を返すことに注意してください.したがって、リセットした後は、自分の必要に応じてタイプ変換を行うことを忘れないでください.文法:set([i terable])iterable:反復対象対象(実はここでは前に習ったことがありますが、長い間復習していないので、少し忘れてしまいました.新しい知識を学ぶと同時に、復習前の知識も忘れないでください.)