pythonの基礎を備忘録として残しておく
summary
x = [0, 1, 2, 3, 4]
print(x[0]) # 1番目の要素切り出し
print(x[1:4]) # 2番目から4番目の要素の切り出し
print(x[-1]) # 最後の要素の切り出し
print(x[-2:]) # 後ろから2つの要素の切り出し
x[2] = 6 # 3番目の要素を6に変更
x.append(5) # 最後に5を追加
print(len(x)) # リストの長さ
print(sum(x)) # 要素の合計
print(max(x)) # 最大値
print(min(x)) # 最小値
print(2 in x) # 2がリストに存在するか
print(tuple(x)) # リストをタプルへ変換
x = list(range(1, 11)) # 1〜10のリスト
x.sort() # 昇順
x.sort(reverse = True) # 降順
* print(x.sort()) はダメ。Noneが返って来る
x = {'A': 10, 'B': 20, 'C': 30}
x['A'] = 15 # 'A'のバリューを15に変更
x['D'] = 60 # 'D':60 を追加
print(x.keys()) # キーの取り出し
print(list(x.keys())) # キーを取り出し、リストに
print(x.values()) # バリューの取り出し
print(list(x.values())) # バリューを取り出し、リストに
print(x.items()) # キーとバリューを取り出す
print(list(x.items())) # キーとバリューを取り出し、リストに
print(x['B']) # キー'B'のバリュー
print(x.get('B')) # キー'B'のバリュー
print(x.get('D')) # キー'D'のバリュー(存在しないと'None')
x['C'] = x['C']*10 # 'C'のバリューを10倍
x = [3, 2, 1, 6, 6, 5, 5, 4]
print( set(x) ) # セット(出力は{})
print( list(set(x)) ) # セットをリストに
* 重複は削除され昇順になる
print( set(x1) | set(x2) ) # 和集合
print( set(x1) & set(x2) ) # 積集合
print( set(x1) - set(x2) ) # 差集合
1.リスト型
リストからの要素の切り出し
x = [0, 1, 2, 3, 4]
print(x[0]) # 1番目の要素切り出し
print(x[1:4]) # 2番目から4番目の要素の切り出し
print(x[-1]) # 最後の要素の切り出し
print(x[-2:]) # 後ろから2つの要素の切り出し
# 出力
0
[1, 2, 3]
4
[3, 4]
リストの要素変更
x = [0, 1, 2, 3, 4]
x[2] = 6 # 3番目の要素を6に変更
print(x)
# 出力
[0, 1, 6, 3, 4]
リストへの要素追加
x = [0, 1, 2, 3, 4]
x.append(5) # 最後に5を追加
print(x)
# 出力
[0, 1, 2, 3, 4, 5]
リスト操作
x = [0, 1, 2, 3, 4]
print(len(x)) # リストの長さ
print(sum(x)) # 要素の合計
print(max(x)) # 最大値
print(min(x)) # 最小値
print(2 in x) # 2がリストに存在するか
print(tuple(x)) # リストをタプルへ変換
# 出力
5
10
4
0
True
(0, 1, 2, 3, 4)
リストの結合
x1 = [0, 1, 2]
x2 = [3, 4, 5]
print(x1 + x2)
# 出力
[0, 1, 2, 3, 4, 5]
range関数を使って、1〜10までのリストを作る
x = list(range(1, 11))
print(x)
# 出力結果
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
リストの並べ変え。print(x.sort())とかやると None が返って来るので注意。
x = [ 1, 3, 2, 4, 5]
x.sort() # 昇順(数字の低いものから)
print(x)
x.sort(reverse = True) # 降順(数字の高いものから)
print(x)
# 出力
[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]
2. ディクト型
ディクショナリーは、dict()のキーワード引数を利用して作成できる。
x = dict(A = 10, B = 20, C = 30)
print(x)
# 出力
{'A': 10, 'B': 20, 'C': 30}
ディクショナリーの要素を変更する
x = {'A': 10, 'B': 20, 'C': 30}
x['A'] = 15 # 'A'のバリューを15に変更
print(x)
# 出力
{'A': 15, 'B': 20, 'C': 30}
ディクショナリーに要素を追加する
x = {'A': 10, 'B': 20, 'C': 30}
x['D'] = 60 # 'D':60 を追加
print(x)
# 出力
{'A': 10, 'B': 20, 'C': 30, 'D': 60}
key を取り出し、リストに変換
x = {'A': 10, 'B': 20, 'C': 30}
print(x.keys()) # キーの取り出し
print(list(x.keys())) # リストに変換
# 出力
dict_keys(['A', 'B', 'C'])
['A', 'B', 'C']
バリューを取り出し、リストに変換
x = {'A': 10, 'B': 20, 'C': 30}
print(x.values()) # バリューの取り出し
print(list(x.values())) # リストに変換
# 出力
dict_values([10, 20, 30])
[10, 20, 30]
キーとバリューの両方を取り出す
x = {'A': 10, 'B': 20, 'C': 30}
print(x.items()) # キーとバリューを取り出す
print(list(x.items())) # リストに変換
# 出力
dict_items([('A', 10), ('B', 20), ('C', 30)])
[('A', 10), ('B', 20), ('C', 30)]
ディクト型 { キー1:バリュー1, キー2:バリュー2, .... } から、キーに該当するバリューを取り出す。
x['B'] と x.get('B') は同じ結果になる。しかし、リストに存在しないキーの場合、x['D']はエラーになるが、x.get['D']はNoneが返る。
x = {'A':10, 'B':20, 'C':30}
print(x['B']) # キーが'B'のバリュー取得
print(x.get('B')) # get関数によるバリュー取得
print(x.get('D')) # リストに存在しない場合、Noneが返る
# 出力結果
20
20
None
get関数を使って、キーがあればそのバリューを、キーがなければ'存在しません'と出力する。
def func(key):
x = {'A':10, 'B':20, 'C':30}
v = x.get(key)
if v == None:
print('存在しません')
else:
print(v)
func('D')
func('C')
# 出力
存在しません
30
'C' のバリューを10倍にする
x = { 'A':10, 'B':20, 'C':30 }
x['C'] = x['C']*10 # 'C'のバリューに、'C'のバリューを10倍したものを代入
print( x )
# 出力
{'A': 10, 'B': 20, 'C': 300}
3. セット型
リストからセット{ }を作ると、要素の重複が省かれ、昇順に並ぶ。list関数でリストに変換。
x = [3, 2, 1, 6, 6, 5, 5, 4]
print( set(x) )
print( list(set(x)) )
# 出力
{1, 2, 3, 4, 5, 6} # セット型
[1, 2, 3, 4, 5, 6] # リスト型
セット(集合)の演算
x1 = [1, 2, 3]
x2 = [3, 4, 5]
print( set(x1) | set(x2) ) # 和集合
print( set(x1) & set(x2) ) # 積集合
print( set(x1) - set(x2) ) # 差集合
# 出力結果
{1, 2, 3, 4, 5} # セット型
{3} # セット型
{1, 2} #セット型