ぱいそん3が書けるようになりたいその2
リスト(配列)を定義
list = ["hoge","hogehoge"]
・型の違う要素も入る
・変数もリストのメンバーにできる
リストの要素にアクセスする
print(list) #リストの要素全部出力
print(list[n]) #リストのn番目の要素を出力
n = len(list) #要素数を取得
・nはお決まり通り0から
・リストの範囲外にアクセスしようとするとエラーで止まる
リストの要素を操作
list.append("hoge") #リストの末尾に要素を追加
list[n] = "hoge" #リストのn番目の要素を上書き
list.pop(n) #リストのn番目の要素を削除。
len(list) #リストの長さを取り出す
・popした後、残った要素のインデックスは前詰めされる
forinとリスト組み合わせるとめっちゃ便利って話
list = [1,2,3,4,5]
for n in list:
print n
これだけで
1
2
3
4
5
と出力される
(リストの要素をインデックス順に一つずつ取り出して、カウンタ変数に渡す→rangeでループ回数指定するときもやってる事は同じっぽい(range(min,max)で、minからmaxまで1ずつ数字を取り出してカウンタ変数に渡す))
for (i,n) in enumerate(list):
print(str(i) + ":" + str(n))
で、インデックスと値両方取れる。
forで回しながら値取り出す→加工→結果配列へどんどん格納していけば新しい配列も三行で作れる。
リストのソート
list = ["a","b","d","c","g","f"]
print(sorted(list))
print(sorted(list,reverse=True)) #逆順ソートができる
・漢字は文字コード順ソートされる
辞書(連想配列)
dictionary = {"key1":"hoge","key2":"hogehoge","key3":"hogehogehoge"}
print(dictionary["key1"] ) #hoge
dicrionary["key4"] = "foo" #追加
del dicrionary["key1"] #削除
・定義する時は{}
・キーを指定して代入するだけで追加・修正できる
・delはリストにも使える
辞書もforと合わせて使うと便利
dic = {"key1":"hoge","key2":"hogehoge"}
for num in dic:
print (dic[num])
で
hoge
hogehoge
for (key,member) in dic.items():
print(key,member)
で、
key1 hoge
key2 hogehoge
が出力される。キーも値も出力したい時は「.items()」。
辞書のソート
dic = {"a":"apple","b":"bird","d":"doll","c":"cake"}
print(sorted(dic)) #['a', 'b', 'c', 'd']
print(sorted(dic.items())) #[('a', 'apple'), ('b', 'bird'), ('c', 'cake'), ('d', 'doll')]
単純なソートだとキーだけソートされる
キーと値セットでソートしたい時はitemsメソッド噛ませる
(ソート基準はキー)
多次元リストを宣言
listA = [1,2,3,4,5]
listB = ["a","b","c","d","e"]
listC = [listA , listB]
print(listC[0][0]) # 1
print(listC[1][2]) # c
多次元リストの操作
listC[0][0] # =listA[0]
len(listC) # リストの長さを表示/2
len(listC[0]) # =len(listA)
多次元じゃないリストと同じように扱える(popとかappendとか)
多次元リストをループ処理
numbers = [[ 1 for i in range(2)] for j in range(3)]
print(numbers) # [[1,1],[1,1],[1,1]]
forの省略表記: [処理] for n in range(x) で、x回[処理]を実行できる。
[1を2回出力]で作った配列を3回作ることで二次元配列を作れる。
この記事が気に入ったらサポートをしてみませんか?