こんにちは。薬学長です。
今回は、Pythonの基本講座➂ということで始めていきましょう。
10. python リスト(配列)型
リストの型
リスト変数のイメージはなにか一つの箱を思い浮かべてください。
この箱の中に複数の値を入れることができるものだと思ってください。
list_a=[1,2,3,4]
※list_aに数値1,2,3,4を格納します。
print(list_a[0])
※0を指定するとlistの1番目の要素である1が表示されます
(indexは0から始まります)
list_a=[1,2,”apple”,4]
※list_aに数値1,2,4と文字列のappleを格納します。
print(list_a[-2])
※-2を指定するとlistの最後から2番目の要素
→appleが表示されます
list_a=[1,[0,1,”apple”],3,”melon”]
※list_aに数値1,3と文字列のapple,リスト[0,1,”apple”]を格納します。
print(list_a[1][2])
※listの2番目の配列の3番目の要素
→appleが表示されます。
list_a[1][2]=’pin’
※listの2番目の配列の3番目の要素がpinになります。
リストのスライス
list_a[0:2]
※1番目から2番目までの値
list_a[0:4:2]
※1番目から4番目まで1つ飛ばし
list_a[-3:]
※最後から3番目以降
リストのメソッド
append:
※値を一つ追加
extend:
※リストにリストを追加して拡張
insert:
※リストに位置を指定して値を追加
clear:
※リストを初期化
remove:
※指定した要素をリストから削除
pop:
※指定したインデックスの要素を取り出して削除
count:
※指定した値がリストに含まれる数を返す
index:
※指定した値のインデックスを返す
copy:
※リストをそのままコピーして新たなリストを作成し、返す
並び替え
sort:
※リストを並び替える(同じ型でないとエラー)sortedでもできる
reverse:
※リストの順番を入れ替える
11. 辞書型
dictionary={‘キー1’ : ‘値1′ , ’キー2’ : ‘値2’} このように辞書型は記載します。
car={“brand”:“Toyota”,“model”:“Prius”,“year”:2015}
※辞書を作成します。
print(car[‘brand’])
※取り出せなかった場合エラー
print(car.get(‘brand’))
※取り出せなかったNone
→変数キー、変数.キーとすることで値を取り出すことができます。
上の例では、Toyota
print(car.get(‘Model’,‘Doesnot
※carにModelというキーが存在しない場合、Doesnotexistを返します
car.keys()
※carのキー’brand’,‘model’,‘が返される
car.values()
※carの値’Toyota’,‘Prius’,2015が返される
car.items()
※carのキーとバリューがそれぞれが返される
for文
for key,valueincar.items():
print(“key={},value={}”.format(key,value))
※key,valueをそれぞれ取り出し、ループ内で回すことができる
if文については後を参照
if key in car:
print(car[‘key’])
辞書型(ディクショナリー)のメソッド
car={“brand”:”Toyota”,”model”:”Prius”,”year”:2015}
car.update({‘country’:japan’,’prefecture’:’Aichi’})
※辞書carにcountryとprefectureを値と共に追加します。
car[‘city’]=’Toyota-shi’
value=car.popitem()
※最後に追加した要素を削除します。この場合、city)が削除されます。
※valueに(‘city’,’Toyotashiとタプルにして返されます。
value=car.pop(‘prefecture’)
※指定したキーを削除します。また、valueにAichiが入ります。
car.clear()
※carに入った値が全て削除されます。
delcar
※辞書carが削除されます。
12. タプル
タプルは値を複数入れるものです。リストに似ていますが、最も重要なポイントは、「値を変更、追加できない」点です。
fruit=(‘apple’,‘banana’,‘orange’,‘lemon’)
※タプルの宣言
print(fruit[0])
※タプルの一番目の要素にアクセスします
fruit[0]=‘pain’
※TypeErrorタプルは値を変更することができない
fruit=fruit + (‘grape’,)
※タプルに要素を追加するには、+ でタプルの形にします。
タプルのメソッドcount,index
リストをタプルに変換する
list_a=[‘banana’,’apple’,’grape]
fruit=tuple(list_a)
※tuple()とすると、リストをタプルに変換することができる
リストと違う特徴
{(‘A’,‘B’):‘value’}
➀配列よりもタプルの方が、アクセスするスピードが速い
➁ハッシュ化して辞書型のキーとして、利用できる
➂値が変更されないことを保障できる
(MONTH=(‘Jan’,‘Feb’,….)など)
13.セット
セットは、リスト、タプルと似たように複数の値を入れる入れ物です
特徴
➀同じ値を持つことがない(ユニーク)
➁順序が保持されていない(挿入された順番通りに取り出すことができない)
➂集合処理を高速で行うことができる
set_a=a’,‘b’,‘c’,‘d’,‘a‘}
※setを作成、aが2つ入っていますが、ユニークの特徴から一つしか入りません
print(set_a)
※set_aには、{‘a’,’d’,’c’,’d’} の4つの要素があります。
print(‘e’ in set_a)
※set_aには、’e’が入っていないため、Falseが返ります。
print(‘e’ not in set_a)
※set_aには、’e’が入っていないため、Trueが返ります。
print(len(set_a))
※set_aの数を返します。この場合4が返ります。
set_a.add(‘e’)
※set_aに‘e’を追加します。
set_a.remove(‘e’)
※set_aから‘e’を削除します。‘e’がない場合は、KeyErrorを返します。
set_a.discard(‘e’)
※set_aから‘e’を削除します。‘e’がない場合でも、エラーは発生しません。
set_a.pop()
※set_aから任意の要素を取り出し削除します。
set_a.clear()
※set_aから全ての要素を削除します。
セットのメソッド
union(|)
※ユニオン、和集合を返します。
intersection(&)
※集合の共通する要素、積集合を返します。
difference(-)
※片方の集合にあり、片方の集合にない要素、差集合を返します
symmetric_difference
※どちらか一方にだけある要素の集合を返します
s={‘a’,’b’,’c’,’d’}
t={‘c’,’d’,’e’,’f’}
s | t
※sとtのユニオンの集合、a’,’b’,’c’,’d’,’e’,’fを返します
s.union(t)
※sとtのユニオンの集合、a’,’b’,’c’,’d’,’e’,’fを返します
s & t
※sとtの積集合、c’,’dを返します
s.intersection(t)
※sとtの積集合、c’,’dを返します
s – t
※s – t,s.difference(t)では、sとtの差集合、a’,’bを返します
s.difference(t)
※s – t,s.difference(t)では、sとtの差集合、a’,’bを返します
s^t
※s^t,s.symmetric_difference(では、sとtの片方に含まれるa’,’b’,’e’,’fを返します
s.symmetric_difference(t)
※s^t,s.symmetric_difference(では、sとtの片方に含まれるa’,’b’,’e’,’fを返します
s | =t
※s=sとtのユニオン、つまりsにtの値を追加します。
s={‘apple’,’lemon’}
t={‘apple’,’banana’,’lemon’,’grape’}
u={‘cherry’}
print(s.issubset(t))
※sの要素は総てtに含まれるため、sはtのサブセットでTrueを返します
print(t.issuperset(s))
※sの要素は総てtに含まれるため、tはsのスーパーセットでTrueを返します
print(t.isdisjoint(u))
※tの要素とuの要素は一つも被っていないため、Trueを返します。
以上で、リストや辞書型、タプル、セットについて理解できましたね。
続いて講義➃に進みましょう。