masakunの日記: 第2章 コレクションの基本(すっきりPython 77~107頁)
★☆★ リスト(list or array) ★☆★
大量のデータを単にまとめて管理したいときや、順序をもつ複数のデータを管理したいときに使う
hensuu = [要素1, 要素2, 要素3, ...]
各要素には添え字が自動で割り当てられるので、要素1 を参照したいときには次のように記述する。
hensuu[0]
要素の値をすべて足したいときには次の通り。
sum(hensuu)
要素の値の平均を求めたいときは、合計値を len(hensuu) で記述できる要素の個数で割ればよい。
total = sum(hensuu)
avg = total / len(hensuu)
リストの末尾に値を追加したい場合は append 関数を使える。
member =['工藤', '松田', '麻木']
member.append('菅原')
リストの途中に挿入したい時には insert 関数を使う。
member.insert(1,'大塚')(2番目に「大塚」を挿入)
リスト内から削除したいときは remove 関数を使える。
member.remove('松田')
リスト内の要素を変更したい時には、
member[0] = 佐藤(1番目を「佐藤」に変更)
〇スライス(Slice)による範囲指定
変数[A:B:C](A以上B未満をCステップで,AとBを省略した:は全部)
a = [10, 20, 30, 40, 50]
print(a[1:3]) #添え字1以上3未満
print(a[2:]) #添え字2以上
print(a[:3]) #添え字3未満
print(a[::2])
print(a[::-1])
実行結果
[20, 30]
[30, 40, 50]
[10, 20, 30]
[10, 30, 50]
[50, 40, 30, 20, 10]
〇負の数による指定
a = [10, 20, 30, 40, 50]
print(a[-1]) #末尾の要素を指定
print(a[-2]) #末尾から2番目の要素を指定
実行結果
50
40
★☆★ ディクショナリ(dict or map) ★☆★ (複数のデータにキーをつけて管理したいときに)
hensuu = {キー1:値1, キー2:値2, キー3:値3, ...}
キーに様々な型を混在させられ、キーの重複も許されるが、最後に指定したもの以外は無視される。ディクショナリの要素を参照したいときは、hensuu[キー] とする。
addres = {4200838: '相生町', 4212309: '相淵', 4211307: '相俣', 4200017: '葵町'}
print(addres[4200838])
実行結果
相生町
ディクショナリの要素を追加したり変更するには次のようにする。
addres = {4200838: '相生町', 4212309: '相淵', 4211307: '相俣', 4200017: '葵町'}
addres[4211305] = '赤沢' #追加
addres[4212309] = '静岡市葵区相淵' #変更
print(addres)
実行結果
{4200838: '相生町', 4212309: '静岡市葵区相淵', 4211307: '相俣', 4200017: '葵町', 4211305: '赤沢'}
ディクショナリの要素を削除したい時は、del 文を使って削除したいキーを指定する。
del addres[4212309]
ディクショナリの値の合計を求めるときは次のように記述する。
scores = {'network':80, 'database':70, 'security':50}
total = sum(scores.values())
print(total)
実行結果
200
なお Python 3.7 から順序性が保証されたため、追加した順番に要素を取り出すことが可能ですが、3.6 以前では保証されていません。
★☆★ タプル(tuple) ★☆★
書き換える可能性のない複数のデータをまとめて管理したいときに使う。
hensuu = (値1, 値2, 値3, ...)
scores = (70, 80, 55)
print(scores[0])
print(f'要素数は{len(scores)}で、合計は{sum(scores)}点です')
実行結果
70
要素数は3で、合計は205点です
なお要素が1つしかないタプルを生成するには値の後ろに必ずカンマを付けます。
members = ('松田',)
タプルの丸かっこは省略できるが、何をしているか紛らわしいのでお奨めはしない。
★☆★ セット(set or 集合) ★☆★
セットは順序をもたず要素は重複しないため「種類」の管理に向いている。値の追加は add を使う。
hensuu = {値1, 値2, 値3, ...}
scores = {70, 80, 55, 80}
scores.add(90)
print(scores)
print(f'要素数は{len(scores)}で、合計は{sum(scores)}点です')
実行結果
{80, 90, 70, 55}
要素数は4で、合計は295点です
リストの場合には要素に順番があるため、末尾に加える意味で append() を用いたが、セットはただの集合なので順番はない。それで加える意味の add() を使う。
第2章 コレクションの基本(すっきりPython 77~107頁) More ログイン