複数の変数をまとめて管理。番号(添え字)で区別する。添え字は0~要素数-1まで。
# リストを作る lst = [5,9,8,7,3] #リストの値を表示 print(lst[2]) # 2番目を表示 #リストに値を入れる #リスト名[添え字] = 値 lst[0]=10 #リストにデータ追加 lst.append(20) #リストからn番目を削除 lst.pop(n) # リストからデータ9を削除 lst.remove(9) #リストの要素数 # len(リスト) len(lst)
lst = [5,9,8,7,3]
for num in lst:
print(num)
何番目かも表示したいときにはenumerate関数を使う
lst = [5,8,9,7,4]
for index,val in enumerate(lst): # 0から開始
print(index,"番目:",val)
for index,val in enumerate(lst,1): # 1から開始
print(index,"番目:",val)
2つのリストを同時に全要素アクセスしたいときにはzip関数を使う
names = ['りんご','みかん','いちご']
prices = [100,200,150]
for name,price in zip(names,prices):
print(name,price)
if lst:
print("1つ以上の要素有り")
if not lst:
print("要素無し")
if 10 in lst:
print("10がある")
lst = [5,9,8,7,3] lst.sort() # 昇順 print(lst) lst.sort(reverse=True) # 降順 print(lst) lst2 = sorted(lst) # 元を変更せずに整列 print(lst2) lst.reverse() # 逆順 print(lst)
lst = [5,9,8] num1, num2, num3 = lst*を付けた変数には残りリストを代入可能
lst = [5,9,8,7,4] num1, num2, *other = lst # num1=5,num2=9,other=[8,7,4]
これは最後だけでは無く、最初や中間にも書ける。
リストから別のリストを生み出す。
# 条件なし lst = [変数への処理 for 変数 in リスト] # 条件があるとき lst = [変数への処理 for 変数 in リスト if 条件]
lst = [1,3,4] # リストの要素を全て二倍 lst2 = [num*2 for num in lst] print(lst2) # 2,6,8 # リストから1より大きい要素を抜き出す lst3 = [num for num in lst if num > 1] print(lst3) # 3,4
複数の値をまとめて管理。番号(添え字)で区別する。添え字は0~要素数-1まで。
リストとの違いは変更できないこと
# タプルを作る tpl = (5,9,8,7,3) # タプルは()は必須ではなく、カンマが必須 tpl = 5,9,8,7,3 # 一個の要素でもタプルにしたいならカンマが必要 tpl = (5,) # タプル関数(リストからの変換) tpl = tuple([5,9,8,7,3]) # list関数(リストへの変換) lst = list(tpl) #要素表示 print(tpl[0]) #要素数 print(len(tpl))
tpl = (5,9,8,7,3)
for num in tpl:
print(num)
キーと値のペアをまとめて管理。添え字の代わりにキーを指定する。
# 辞書を作る
dic = {"ringo":100,"mikan":120,"ichigo":200}
# dict関数の場合
dic = dict(ringo=100,mikan=120,ichigo=200)
# 値の表示
print( dic["ringo"] )
# 値の変更
dic["ringo"] = 110
# 値の追加
dic["momo"] = 300
# 値の削除
dic.pop("mikan")
# もしくは
del dic["mikan"]
# キーの有無判定
if 'ringo' in dic:
print("ある")
2つの辞書の合体。
dic1 = dict(ringo=100,mikan=120)
dic2 = dict(ringo=200,ichigo=200)
# 合体
dic1.update(dic2)
# 表示
print( dic1 ) # {'ringo': 200, 'mikan': 120, 'ichigo': 200}
keys()で全てのキー、values()で全ての値、items()で全てのペア(タプル)がとれる
# 全てのキー(dic.keys()でも同じ)
for key in dic:
print(key)
print(dic[key])
# 全ての値
for value in dic.values():
print(value)
# 全てのペア
for key,value in dic.items():
print(key)
print(value)
辞書・リストから別の辞書を生み出す。
lst = {キー:値 for 変数 in リスト}
# 文字列とその長さ
lst = ['apple','book','pen']
dic = {item:len(item) for item in lst}
print(dic) # {'apple': 5, 'book': 4, 'pen': 3}
重複と順番が無いリスト
# セットを作る
ken = {"熊本","福岡","長崎"}
# 追加
ken.add("宮崎")
ken.add("熊本") # 追加されない
#削除
ken.remove("長崎")
# 全て表示
{'熊本', '福岡', '宮崎'}
print( ken )
in演算子で要素がセット無いにあるかどうかがわかる。
if "熊本" in ken:
print("熊本があります")
for k in ken:
print(k)
ken = {"熊本","福岡","長崎"}
shin = {"熊本","福岡","佐賀"}
print( ken - shin ) # 差分 長崎
print( ken | shin ) # OR 熊本、福岡、長崎、佐賀
print( ken & shin ) # AND 熊本 福岡
print( ken ^ shin ) # XOR 長崎 佐賀
リスト、タプル、文字列など
+演算子で連結
lst = [1,2,3] lst2 = [4,5,6] lst3 = lst+lst2 print(lst3)# 1,2,3,4,5,6
*演算子で複製して連結
lst = [1,2,3]*2 print(lst) # 1,2,3,1,2,3
lst = [5,8,9] print(8 in lst) # True
lst = [5,8,9] print(8 not in lst) # False
[開始:終了]で部分取得できる。開始~終了-1まで。指定しない場合には最初または最後まで。マイナスは後ろから数える。
lst = [5,8,9,1,3] print( lst[1:3]) # 8,9 print( lst[:3]) # 5,8,9 print( lst[3:]) # 1,3 print( lst[:-1]) # 5,8,9,1 print( lst[-2:]) # 1,3
[開始:終了:増分]も可能。マイナスは後ろから数える。
lst = [5,8,9,1,3,4] print( lst[0:6:2]) # 8,9 print( lst[:3]) # 5,8,9 print( lst[3:]) # 1,3 print( lst[:-1]) # 5,8,9,1 print( lst[-2:]) # 1,3