ぱいそん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回作ることで二次元配列を作れる。


この記事が気に入ったらサポートをしてみませんか?