プログラムの基礎が分かる僕がPythonを学んでみる(その3)


今回は、配列関係について学びます。

Pythonには、list,tuple,dict,set と配列のような働きをする書き方があります。

listから。リストは、[]で囲まれた要素の塊で、異なる型の要素のリストも作れるみたいです。
異なる型の要素だと、ループしたりするときに処理が大変だったりしないのかな?
その辺は、いずれ解決されるのだろうか?

list = [1, 2, 3, 4] #数字のリスト
signal = [
'red',
'yellow',
'green'
]
dif = [1, 'string'] #異なる型の要素もOK

こんな感じで定義できます。要素にアクセスするには、

list[0], list[1], list[2], list[3]

のようにします。
リストから、部分を抜き出すことも出来ます。

list = [0, 1, 2, 3, 4, 5]
part1 = list[2:5] #3番目の要素から4番目の要素を抜き出す([2,3,4])
part2 = list[2:] #3番目から最後までの要素を抜き出す([2,3,4,5])
part3 = list[:5] #最初から4番目の要素を抜き出す([0,1,2,3,4])
part4 = list[-3:-1] #マイナスは後ろから数える。
#最後から5番目の要素から最後から2番目の前の要素([3,4])
part5 = list[0:5:2] #最初から4番目まで2個飛ばしで取り出す([0,2,4])

これらのリストの中身を確認したいときは、

for n in list:
print(n)

とすると、リストの中身を書き出してくれます。

試しに、

list = [0, 1, 2, 3, 4, 5]
for n in list:
    print(n)
for n in list[2:5]:
    print(n)
for n in list[-5:-2]:
    print(n)

を実行すると、

0
1
2
3
4
5
2
3
4
1
2
3

と表示されます。要素の数は、len(list)で取得できます。

list = [0, 1, 2, 3, 4, 5]
print(len(list))

を実行すると、

6

と表示されます。

タプル(tuple)は、リストの要素を変更できないバージョンです。

tuple = (0, 1, 2, 3, 4, 5)
for n in tuple:
    print(n)
for n in tuple[2:5]:
    print(n)
for n in tuple[-5:-2]:
    print(n)
print(len(tuple))

と実行すれば、

0
1
2
3
4
5
2
3
4
1
2
3
6

と表示されます。タプルとリストは入れ替えできます。

print(list((0, 1, 2, 3, 4, 5)))
print(tuple([0, 1, 2, 3, 4, 5]))

と実行すれば、

[0, 1, 2, 3, 4, 5]
(0, 1, 2, 3, 4, 5)
と表示されます。list関数やtuple関数は変数には使えないみたいです。

辞書(dict)は、キーと値のペアのリストです。
dict = {'A': 1, 'B': 2, 'C': 3}
print(dict['A'])

for key,value in dict.items():
    print(key,value)
for key in dict.keys():
    print(key)
for value in dict.values():
    print(value)

と実行すると、

1
A 1
C 3
B 2
A
C
B
1
3
2

と表示されます。順序は適当みたいです。
順序通りに並べたければ、処理が必要みたいです。

セット(set)は、重複のないリストで演算ができるみたいです。

set1 = set([ 1, 2, 3])
set2 = set([ 2, 4, 6])
print(set1)
print(set2)
print(set1 - set2)
print(set1|set2)
print(set1&set2)
print(set1^set2)
print(1 in set1)
print(1 in set2)

を実行すると、

set([1, 2, 3])
set([2, 4, 6])
set([1, 3])
set([1, 2, 3, 4, 6])
set([2])
set([1, 3, 4, 6])
True
False

となります。
それぞれの配列を扱う関数があるので、それはリファレンスを調べるとよいのかな。
あとで、徐々にこれらを使うときに使ってみたいと思います。

次は、演算子について学びます。
といっても、Cとの違いを中心に見ていきたいです。


シェアする

  • このエントリーをはてなブックマークに追加

フォローする