LoginSignup
4
8

More than 5 years have passed since last update.

[初心者] [メモ] 「退屈なことはPythonにやらせよう」をやってみたメモ

Last updated at Posted at 2018-08-24

はじめに

退屈なことはPythonにやらせようをやったメモです

まだPythonを触ったことない人や同じ本をやって見たけどよくわからないから他の人のまとめを見たいみたいな需要があるかもと思って公開して見ました。

随時追加、修正していきます。
修正リクエスト大歓迎です。僕の勉強になるので!
よろしくお願いします!

メモ

以下メモです。

メソッド

  • データ型に紐づいた関数

リスト

  • 配列のこと
  • リスト値はリストそのもの [1, 2, 3]
  • 一つ一つは要素と呼ぶ

In と not in 演算子

ある値がリストに含まれるかどうかをinとnot in 演算子を用いて判定することができる


list1 = ['tanaka', 'satou', 'suzuki', 'kimura']

print('tanaka' in list1)
// True
print('takenaka' not in list1)
// False

複数代入法


cat = ['fat', 'black', 'loud']
size, color, disposition = cat
print(size) #fat
print(color) #black
print(disposition) #loud

長さは一致していないといけない
指定いない場合はValueErrorになる

indexメソッド

値を渡すとリストの中を探して、インデックスを返す
リストに値がなければ、ValueErrorを返す
リストの中に複数値が存在する場合は最初に出現した方のインデックスを返す


リスト.index(探したい要素)

list = ['tanaka', 'satou', 'kimura']

# インデックスが返ってくる
list.index('tanaka') #0
list.index('satou') #1

list.index('inoue')

#Traceback (most recent call last):
  #File "<stdin>", line 1, in <module>
#ValueError: 'inoue' is not in list

append()メソッド

引数に渡された値をリストの末尾に追加する

insert()メソッド

リストの任意の場所に値を挿入することができる

removeメソッド

リストから値を削除する

Delを使って値を削除

del spam[2]

sort()メソッド

リスト中の値をソートする
文字列の配列でも数字の配列でも使えるが、型のことなる値がある場合はTypeErrorという例外を返す
逆順にするには引数にreverse=Trueを渡す


spam.sort(reverse=True)

大文字→小文字の順にソートされる
アルファベット順にしたい場合は


spam.sort(key=str.lower)

一つの命令を複数行に分けて書く場合

\ を使って改行する


print('Four score and seven ' + \
'years ago...')

リストはミュータブル、文字列はイミュータブル

文字列を変更するにはスライスと連結を使って元の文字列の一部から新しい文字列を作成する必要がある


name = 'Zophie a cat'
new_name = name[:7] + 'the' + name[8:]

タプル型

リストとほぼ同じデータ型
◯違う点
( )で囲む
イミュータブル

値のクラスを確認する


type(  )
type((1,2,3)) # <class ‘tuple’>

List関数とtuple関数を使って型を変換する


tuple([cat, dog, 5])
# ('cat', 'dog', 5)
list(('cat', 'dog', 5))
# [‘cat', 'dog', 5]

数値を変数に代入する場合とリストを変数に代入する場合の違い

リストを変数に代入する場合は、リストの値ではなくリストへの参照を変数に入れている

参照を渡す
関数が呼び出される時、引数の値はパラメーター変数にコピーされる
つまり、リストを渡すと、パラメータ変数にはそのリストの参照がコピーされる

Copyモジュールのcopy( )関数とdeepcopy( )関数

要素が一つだけのtupleを作る場合はカンマを入れる


(42,)

辞書とデータ構造

リストと異なり、辞書の要素の順序は不定

keys()、values()、items()メソッド

  • keys()

  辞書のキーを返す

  • values()

  辞書の値を返す 

  • items()

  キーバリューペアを返す


spam = {'color': 'red', 'age': 42}
for v in spam.values():
    print(v)

#red
#42

for k in spam.keys():
    print(k)

#colors
#age

for i in spam.values():
    print(i)

#('color', 'red')
#('age', 42)

キーや値が辞書に存在するかどうか調べる


spam = {'name':'Zophie', 'age': 7}
'name' in spam.keys()
# True

# ↑は省略してかける
'name' in spam
# True

'Zophie' in spam.values()
# True

getメソッド

アクセスしたいキーと、そのキーが存在しない時に用いる値の二つの引数をとる


picinic_items = {'apples': 5, 'cups': 0}

# キーが存在しないとき
'I am bringing ' + str(picinic_items.get('eggs', 0)) + ' eggs'
# 'I am bringing 0 eggs'

# キーが存在するとき
'I am bringing ' + str(picinic_items.get('apples', 0)) + ' apples'
#'I am bringing 5 apples'

getを使わない場合は、keyErrorが発生する

setdefault()メソッド

辞書にキーが未登録の場合のみ値を登録する
第一引数 調べたいキー
第二引数  そのキーが存在しない時に設定する値


spam = {'name':'Pooka', 'age':5}
spam.setdefault('color', 'black')
# 'black'
 spam
# {'name': 'Pooka', 'age': 5, 'color': 'black'}
# 'color':'black'が追加されている

spam.setdefault('color', 'black')
# 'black'
# すでに値が存在するため、'black'が返ってくる

最後に

機械学習にオススメの教材などあればコメントで教えてくださると嬉しいです。
よろしくお願いします。

4
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
8