本記事について
この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。
データ構造と組み込み関数
前回の記事
https://qiita.com/kou1121/items/1bce9187dc6fa94d3ed1
スライシング(slicing)
- スライスで部分的な文字列を取り出す
- 指数はいつも0から始まる
- Pythonで start:end:step というレンジの指定がスライスする(startは含むがendは含まない)
- endを指定しなかったら、最後までと言うこと
- stepを指定しなかったら、step=1になる
- ここで一つ覚えておきたい関数があって、len()という関数は文字列(時にはオブジェクト)の長さを返す
str2 = '利樹は大好きだよ!'
print(str2[2])
print(str2[-1]) # 後ろから
print(str2[5:8])
print(str2[:7])
print(str2[3:])
print(str2[-3:]) # 最後の3文字
print(str2[::2]) # step=2
len(str2)
リスト型の使い方(シーケンス型)
- 文字列と同じスライスができる
- リストの場合は要素で数える
namelist = ['としき', 'あっきー', 'たろう', 'じろう', 'さぶろう']
print(namelist[2])
print(namelist[-1]) # 後ろから
print(namelist[1:3])
print(namelist[:3])
print(namelist[3:]) #4つ目から最後まで
print(namelist[-3:]) # 最後の3要素
print(namelist[::2]) # step=2
print(namelist[:]) # 全部
len(namelist)
- リストのメソッドにより増減
namelist = ['としき', 'あっきー']
namelist2 = ['たろう', 'じろう', 'さぶろう']
namelist.append('としき') # 末尾へ追加
print(namelist)
namelist.extend(namelist2) # リストの結合、namelist += namelist2もできる
print(namelist)
namelist.insert(1, 'しろう') # 指定の場所に挿入
print(namelist)
del namelist[1] # リストのメソッドでない、Pythonの分(statement)
print(namelist)
namelist.remove('としき') # 指定した値と同じ要素を検索し、最初の要素を削除
print(namelist)
a = namelist.pop() # 要素を取り出して、削除する、POP(1)やpop(-1)も指定できる。pop()は一番最後
print(a)
i = namelist.index('としき') # 要素の場所(オフセット)を知る
print(namelist)
print(i)
print(namelist.count('としき')) # 個数の計算
namelist.sort() # 昇順に並び替え
print(namelist)
- リストのコピーで気を付けること
- a = b みたくリストの代入を行った場合、同じリストを指している(参照渡し)
- もしコピーしたい場合は、別の方法でないといけない
a = [1,2,3]
print(a)
b = a.copy() # リストのcopy()メソッド
c = list(a) # list()の返還関数
d = a[:] # リストのスライス
print(a, b, c, d)
a[0] = 'x'
b[1] = 'y'
c[2] = 'z'
print(a, b, c, d)
- リストはイテレータ(要素を反復処理)として使う
namelist = ['としき', 'あっきー','たろう', 'じろう', 'さぶろう']
for name in namelist:
print(name)
- 代わりにrenge関数が導入できる。range(start, end, step)関数では指定されたレンジの数値を反復的に生成する
for i in range(5):
print(i)
for i in range(1,5):
print(i)
for i in range(1,10,2):
print(i)
参考