以下のようなfor
ループでインデックスにアクセスするにはどうすればいいですか?
ints = [8, 23, 45, 12, 78]
for i in ints:
print('item #{} = {}'.format(???, i))
このような出力を得たいのです。
item #1 = 8
item #2 = 23
item #3 = 45
item #4 = 12
item #5 = 78
for`ループを使ってループさせる場合、ループのインデックス(この場合は1から5まで)にアクセスするにはどうすればいいですか?
CやPHPなどの言語で通常使用する)インデックス変数のような追加の状態変数を使用することは、非神話的であると考えられます。
より良い選択肢は、Python 2と3の両方で利用可能な組み込み関数enumerate()
を使用することです。
for idx, val in enumerate(ints):
print(idx, val)
詳しくはPEP 279をご覧ください。
昔ながらの方法です。
for ix in range(len(ints)):
print ints[ix]
リストの理解度。
[ (ix, ints[ix]) for ix in range(len(ints))]
>>> ints
[1, 2, 3, 4, 5]
>>> for ix in range(len(ints)): print ints[ix]
...
1
2
3
4
5
>>> [ (ix, ints[ix]) for ix in range(len(ints))]
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)]
>>> lc = [ (ix, ints[ix]) for ix in range(len(ints))]
>>> for tup in lc:
... print tup
...
(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
>>>