Python Introduction part1
「Python来週までに使えるようにねー」
ってアルゴリズムの授業で言われたんで急ごしらえで基礎的なところの細かな違いをちゃちゃっと確認する。初っ端から飛ばしてるわこの教授…教授に言われて参考にしたサイトはこちら。
Introduction — Problem Solving with Algorithms and Data Structures
まずClass Data Typeから。int, float, bool(Booleanのこと)など、小文字っすね。ScalaじゃBooleanみたいに大文字だったな。operationに関しては&&がand、||がor、!=がnotとなっており記号はあんまり使いたがらないのかな?
次にコレクションに関して。Lists,Strings,Tuplesなどがある。今回はListから。
list=[1,3,True,5.5]
newlist=[list]*2
list[2]=False
print(newlist)
まず特筆すべきなのは異なる型を格納可能ということ。
次に、Scalaと違ってmutableであること(もちろんScalaでもmutableなコレクションは可能だが)。故に特定の要素を上書きすることができる。ここでは要素の3つ目をTrueからFalseに書き換えているが、もし2行目を
newlist=list*2
このようにすると3行の更新はnewlistに反映されずnewlistにFalseが出てくることはない。加えて、[ ]をつけた場合newlistは[ [list], [list] ]となるがつけないと[ ]となりlist2つ分の要素が区切られることなく連続したリストが作成される
特定のオブジェクトがリストに含まれているのかを確認と長さを求める
1 in list
=>True
len(list)
=>4
部分要素の取得
list[1:3]
=>[3,False,5.5]
list[:1]
=>[1,3]
リストの初期化
list=[0]*len(list)
=>[0,0,0,0]
末尾に要素を追加
list.append(3)
=>[1,3,False,5.5,3]
要素を特定の位置に追加
list.insert(2,True)
=>[1,3,True,False,5.5,3]
要素の削除
del list[3]
=>4番目の要素を削除
list.remove(3)
=>3をリストから一つ削除(インデックスではない)
末尾要素を取得しリストから削除
list.pop()
=>3
list
=>[1,3,False,5.5]
list.append(3)
=>[1,3,False,5.5,3]
list.pop(1)
//特定の要素を取得し削除することも可能 (取得しないで削除は"del list[object]". 逆に取得して削除しないのはindex( )
=>3
list
=>[1,False,5.5,3]
ソート
list.sort()
list
=>[False,1,3,5.5]
リバース
list.reverse
単純な範囲を求める
range(1,10)
=>[1,2,3,4,5,6,7,8,9]
range(15,10,-1)
=>[15,14,13,12,11]