Cou氏の徒然日記

ほのぼの日記ブログです。

Python3の学習 その5 (セットとリスト)

Python

今回はちょっと適当にセット(set)について知るために、お試しです。

セットの作成にはset( )」関数を使用することで、空のセットを作成可能。

 

何も考えずに、適当に「素数」をセットに追加していく処理を作成。(アルゴリズムとか全然真面目に考えていないですが…)

とりあえず、20までの素数をきれいに抜き出せていました。

その数ー1までのすべての数で割り切れなければOKという形にしました。

 

(本来はその数の1/2まででよいですし、1を追加しているのは正しくない、など色々と真面目に考えていない部分だらけですが・・・)

 

大丈夫そうなので、このループを「20」→「1000」に更新。

すると、表示されたリストの内容は…「ん?」という感じでした。

最後の数が「509」となっていたので、「何で?」と思ったんですが、よくよく見ると、順番がぐちゃぐちゃなだけで、「509」以降の素数も抜き出せていました。

 

調べてみると…セット(set)には、順番は保持されず、順不同になってしまうようです。

このあたり、Java等と同じです。

順番を保持できない以上、並べ替えるのは無理なので、お手軽な方法としては「リスト(list)」への変換

 

list関数でリストに変換し、sorted関数にリストを渡すことで、リストの中身をソートすることができました。

これで一応、順番通りにきれいに並べることができるようです。