문제

다음과 같은 코드가 있습니다.

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)

그러나 두 가지를 결합하는 방법을 알 수 없습니다. 해당 목록이 튜플로 만들어 졌을 때 열거를 어떻게 사용합니까? 내가 이것을해야합니까?

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])
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top