Pythonのfor文の書き方【上級者向け】
310, 2020-02-25
目次
- Pythonのfor文の書き方
- rangeでfor文を回す
- リスト(list)をfor文で回す
- タプル(tuple)をfor文で回す
- 辞書(dict)をfor文で回す
- 集合(set)をfor文で回す
- 自作クラスをfor文で回す
- おわりに
Pythonのfor文の書き方
Pythonのfor
文の書き方です。
rangeでfor文を回す
range
で0
から3
より下まで回す。
for i in range(3): print(i)
0 1 2
range
で3
から6
より下まで回す。
for i in range(3, 6): print(i)
3 4 5
range
で2
つ飛ばしで回す。
for i in range(0, 10, 2): print(i)
0 2 4 6 8
range
で負の方向に回す。
for i in range(3, 0, -1): print(i)
3 2 1
リスト(list)をfor文で回す
リストをfor文で回す。
lst = [1, 2, 3] for el in lst: print(el)
1 2 3
for
文とrange
を使ってリストを回す。
lst = [1, 2, 3] for i in range(len(lst)): print(lst[i])
1 2 3
for
文とenumerate
を使ってリストを回す。
lst = [1, 2, 3] for i, el in enumerate(lst): print(i, el)
0 1 1 2 2 3
タプル(tuple)をfor文で回す
タプルをfor文で回す場合。
tpl = (1, 2, 3) for el in tpl: print(el)
1 2 3
for
文とrange
を使ってタプルを回す。
tpl = (1, 2, 3) for i in range(len(tpl)): print(tpl[i])
1 2 3
for
文とenumerate
を使ってタプルを回す。
tpl = (1, 2, 3) for i, el in enumerate(tpl): print(i, el)
0 1 1 2 2 3
辞書(dict)をfor文で回す
辞書をfor
文で回す。
d = {'a': 1, 'b': 2} for key in d: print(d[key])
1 2
辞書のキーをfor
文で回す。
d = {'a': 1, 'b': 2} for key in d.keys(): print(key, d[key])
a 1 b 2
辞書の値をfor
文で回す。
d = {'a': 1, 'b': 2} for val in d.values(): print(val)
1 2
辞書のキーと値をfor
文で回す。
d = {'a': 1, 'b': 2} for key, val in d.items(): print(key, val)
a 1 b 2
集合(set)をfor文で回す
集合をfor
文で回す場合。
s = {1, 2, 3} for el in s: print(el)
1 2 3
集合をfor
文とrange
で回す。
添字を使った値へのアクセスはできない。
s = {1, 2, 3} for i in range(len(s)): print(i)
0 1 2
集合をfor
文とenumerate
で回す。
s = {1, 2, 3} for i, el in enumerate(s): print(i, el)
0 1 1 2 2 3
自作クラスをfor文で回す
自作クラスをfor
文で回したい場合はクラスに__iter__
を定義する。
class Array: def __init__(self): self.array = [1, 2, 3] def __iter__(self): return iter(self.array) arr = Array() for el in arr: print(el)
1 2 3
自作クラスをfor
文とrange
で回したい場合は__len__
と__getitem__
を定義する。
class Array: def __init__(self): self.array = [1, 2, 3] def __len__(self): return len(self.array) def __getitem__(self, i): return self.array[i] arr = Array() for i in range(len(arr)): print(arr[i])
1 2 3
自作クラスをfor
文とenumerate
で回したい場合も__iter__
を定義する。
class Array: def __init__(self): self.array = [1, 2, 3] def __iter__(self): return iter(self.array) arr = Array() for i, el in enumerate(arr): print(i, el)
0 1 1 2 2 3
おわりに
for
文はPythonの基本的な制御文ですが、色々書き方があります。
全部覚えるのは時間がかかるのでこの記事をブックマークしておきましょう。
ループ大好き
おしまい
姉妹ブログを見に行く。