私はこのようなコードを持っています:
letters = [('a', 'A'), ('b', 'B')]
i = 0
for (lowercase, uppercase) in letters:
print "Letter #%d is %s/%s" % (i, lowercase, uppercase)
i += 1
「i」変数を処理できるenumerate()関数があると言われました。
for i, l in enumerate(['a', 'b', 'c']):
print "%d: %s" % (i, l)
ただし、2つを組み合わせる方法がわかりません。問題のリストがタプルで構成されている場合に、列挙を使用するにはどうすればよいですか?これを行う必要がありますか?
letters = [('a', 'A'), ('b', 'B')]
for i, Tuple in enumerate(letters):
(lowercase, uppercase) = Tuple
print "Letter #%d is %s/%s" % (i, lowercase, uppercase)
それとももっとエレガントな方法がありますか?
これはそれを行うためのきちんとした方法です:
letters = [('a', 'A'), ('b', 'B')]
for i, (lowercase, uppercase) in enumerate(letters):
print "Letter #%d is %s/%s" % (i, lowercase, uppercase)
これは私がそれをする方法です:
import itertools
letters = [('a', 'A'), ('b', 'B')]
for i, lower, upper in Zip(itertools.count(),*Zip(*letters)):
print "Letter #%d is %s/%s" % (i, lower, upper)
編集:解凍は冗長になります。これはよりコンパクトな方法であり、ユースケースに応じて機能する場合と機能しない場合があります。
import itertools
letters = [('a', 'A'), ('b', 'B')]
for i in Zip(itertools.count(),*Zip(*letters)):
print "Letter #%d is %s/%s" % i
あなたもこのようにすることができます:
letters = [('a', 'A'), ('b', 'B')]
for i, letter in enumerate(letters):
print "Letter #%d is %s/%s" % (i, letter[0], letter[1])