0
0

More than 3 years have passed since last update.

学習記録 その2(6日目)

Last updated at Posted at 2019-12-13

学習記録(6日目)

勉強開始:12/7(土)〜
使用書籍:大重美幸『詳細! Python3 入門ノート』(ソーテック社、2017年)

【条件分岐、繰り返し、例外処理(Ch.5 / p.129)】 から再開(4日目)、
【リストの要素を並び替える(Ch.6 / p.170)】 まで終了(6日目)

elseブロックがあるfor文

while文と同様に、繰り返しが終了した時点でelseブロックが実行される。
for文が途中でbreakした場合については実行されない。

try文(例外処理)

想定されるエラーをあらかじめ例外処理することで、途中でbreakせず最後まで処理を行う。
try 〜 except で例外オブジェクトについて組み込む。except以下は複数定義することが可能。
asで定義することで、例外オブジェクトを他の変数で参照することもできる。

リストを作る

numbers = [1, 2, 3, 4, 5, 6, 7, 8]
words = ["flowers", "snow", "moon"]
mixture = [1, 2, "flowers", 3, 5]  #要素の型は混在できる。
num = [0] * 5 = [0, 0, 0, 0, 0]

list() を使うことで、他の型の値をリスト変換することが可能。
list(range(-5, 6)) と打つと、指定範囲の値が入ったリストになる。(この場合、-5 〜 6)
list("ABCDE") と打つと、"A", "B", "C",・・・のように、一文字ずつ分割される、

リストの要素参照と更新

words = ["flowers", "snow", "moon"]
words[1] と打つと、リストの1番目である"snow"が出力される。
words[1] = "wind" と打つと、"snow"が"wind"に置換される。
len()でリストの長さである要素の個数を調べることができる。
len(words)なら3、ただし、インデックス番号は0から始まるので、例えばword[3]などはエラーが出る。

リストに要素を追加、挿入

append(値)で追加する。リストオブジェクトのメソッドなので、あらかじめリストを用意する必要がある。
insert(位置, 値)で挿入する。挿入場所はインデックス番号に準ずる。
pop(抜き取る位置)で抜き取る。popは削除と同時に削除した値を返すので、箱から出すイメージ。
removeは削除する。削除したい値が複数の場合は、最初に見つけた値のみ削除する。
すべて消す場合はwhile文等と組み合わせる。

文字列とリストの相互変換

文字列.split(セパレータ)で分割する。
セパレータとは文中において、分割基準となるもの(と理解した。)
usa = "yes we can"であれば、words = usa.split()と打つことで、文字間の空白を基準として
各単語に分割される。usa = "yes, we, can"であれば、usa.split(,)がセパレータとなる。
空白やカンマが混在している場合はreplaceなどで置換すると対応できる。
(セパレータ).join(リスト)で、リストの各要素をセパレータで結合できる。
AMERICA = OBAMA.join(usa)と打つと、AMERICA = "YES OBAMA WE OBAMA CAN""のようになる。

リストの連結、スライス、複製、比較

+演算子でリスト同士連結できる。extend()でも結合できる。
appendが要素の追加であるのに対し、extendはリストそのもの。
EEIAA = ["kimi", "kara", "morainaki"]
EEIAA[1:] で ["kara", "morainaki"]
EEIAA[:2] で ["kimi", "kara", "morainaki"]
ここらへんは、先取った機械学習のデータ前処理で結構見る機会が多かった気がする。
それぞれに名前を定義することで、リスト分割ができる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0