Python

Pythonメモ データ操作{タプル、リスト、辞書}

 タプル

sample.py

 リスト

リストの操作に関する関数

list() リストを生成する
append( ) リストに要素を加える
count( ) リストの内にある要素がいくつあるか確かめる
pop( ) リストからある要素を取り出す また、引数なしで用いた場合には、リストの最後の要素が取り除かレル
index() リストにある要素があるか確かめるときに使う もしない場合はNameErrorを返す
reverse() リストの要素を逆にする
sort( ) リストを昇順にする
clear( )

sample.py
numbers = [1,2,3,4,5]
numbers.appent(6)
num = numbers.count(5)
print(num) #1
numbers.pop(5) 
print(numbers) #[1,2,3,4]

try:
  print(numbers.index(4))
except NameError:
  print("該当する要素がありません")

numbers.reverse()
numbers.sort()
numbers.clear()

リストのスライス

list[:n]  リストのようなシーケンス要素の先頭からn番目の要素を取り出す場合
list[n:]  シーケンスのn番目以降の要素を取得する場合
list[n:m] シーケンスのn番目からm番目を取得する
list[:-n] シーケンスの最後からn番目までを取得する
list[-n:] シーケンスの最後からn番目以降を取得する
list[::n] シーケンスの要素をn個毎に取得する
list[::-1] リストを逆さまに並び替える

シーケンス番号の参考
list["a","b","c","d","e","f"] の場合
スクリーンショット 2018-02-07 8.13.38.png

sample.py
alphabet = ["a","b","c"]
slice = alphabet[:2]
print(slice) #"a","b"
slice = alphabet[2:]
print(slice) # "b","c"
slice = alphabet[1:2]
print(slice) # "b"
slice = alphabet[:-1]
print(slice) # "b"
alphabet = ["a","b","c","d","e","f"]
slice = alphabet[::2]
print(slice) # "a","c","e"


sample = list("abcdef")
['a', 'b', 'c', 'd', 'e', 'f']
sample[-4:0]
[]
sample[-4:]
['c', 'd', 'e', 'f']
sample[-4:None]
['c', 'd', 'e', 'f']

内包表記

[x * 2 for x in list] リスト内包表記のfor文
[x for x in list if (条件式)] リスト内包表記のif文
[(条件がTrueの場合の式) if (条件) else (Falseの場合の式) for list]  内包表記の記法にはelse句を用いた記法がないため、三項演算子の記法を用いる

sample.py
numbers = [1,2,3,4,5]
double = [x * 2 for x in numbers]
print(double) #[2,4,6,8,10]

even = [x * 2 for x in numbers if x % 2 == 0]
odd = [x * 2 if x % 2 == 1 else x * 2 for x in numbers]

ラムダ式

ラムダ式は無名関数を記述する記法です。
関数のようにふるまいますが、式なので内包表記のようにリストに対して用いることなどができます。
lambda x: (xの式) ラムダ式はlambda x: (xの式)のように記述する

map() ラムダ式をシーケンスに適用するときに活用する

sample.py
f = lambda x: x * 2
print(f(2)) #4

f = lambda a,b: a + b
print(f(2,3)) #5

f = lambda x: x[0]
numbers = [1,2,3]
print(f(numbers)) # 1

f = lambda x: x * 2
num = [1,2,3,4,5]
double = list( map(f,num))
print(double) #[2,4,6,8,10]

 辞書型

keys() 辞書のキーの一覧を取得する
values() 辞書の値の一覧を取得する
items() 辞書型のキーと値をfor文で用いる場合
del 辞書型の要素削除
sorted() 辞書型のそーと
ソートする基準となるkeyの位置をラムダ式を用いて、指定する
降順ソートの場合、reverseパラメータをTrueにします

sample.py
profile = {"mail": "hogehoge@gmail.com", "name": "Bob"}
profile["name"] = John

print(profile.keys()) #dict_keys(['mail','name])

for k,v in profile.items():
  print("キー: {}, 値: {}".format(k,v))

del profile["name"]

student = sorted(student.items, key=lambda x: x[1], reverse= True)