2013-08-01 5 views
0

나는 결합해야하는 for 루프가 2 개 있습니다. 나는이 좋은 시간을 보냈다. 내가 ... 함수에 하나를 만들고 다른에 추가하지만, 균열 수 없습니다 해봤2 개의 for 루프를 병합하는 방법

배열 :

stooges = [('Curly',35,'New York'),('Larry',33,'Pennsylvania'),('Moe',40,'New York')] 

첫 번째 루프 :

for item in stooges: 
    print ("Stooge: {0} {2} {1} ".format(item[0],item[1],item[2])) 

두 번째 루프 :

for i, val in enumerate(stooges, start=1): 
    print ("Stooge", + i) 

내가 필요한 출력 형식은 다음과 같습니다.

Stooge 1: Curly New York 35 
Stooge 2: Larry Pennsylvania 33 
Stooge 3: Moe New York 40 

내가 오셨습니다 가장 가까운입니다

for i, val in enumerate(stooges, start=1): 
    for item in stooges: 
     print ("Stooge", + i, "{0} {2} {1} ".format(item[0],item[1],item[2])) 

답변

2
>>> for i, (name, age, city) in enumerate(stooges, start=1): 
...  print("Stooge {}: {} {} {}".format(i, name, age, city)) 
Stooge 1: Curly 35 New York 
Stooge 2: Larry 33 Pennsylvania 
Stooge 3: Moe 40 New York 
+1

나는 OP의 원래 코드에서'start ='키워드 이름을 되돌려 놓았습니다. 왜냐하면 그것이 그에게 (그리고 어쩌면 미래의 독자들에게) 더 명확해질 것이기 때문입니다. 그러나 그렇지 않으면 훌륭한 대답입니다. – abarnert

1

당신은 그것을위한 루프에 대한이 필요하지 않습니다.

+0

for index, stooge in enumerate(stooges, start=1): name, age, city = stooge print 'Stooge %d: %s %s %d' % (index, name, city, age) 
그러나 당신이 필요로하는 _do_은'시작 = 1' 그것에 대해 ... 그렇지 않으면,'Curly' 원하는 출력되지 않습니다 꼭두각시 0이다. – abarnert

+0

또한'{}'형식에서'%'형식으로 바꾸는 것이 좋습니다. – abarnert

+0

@abarnert 맞습니다. 고맙습니다. '{}'에서'%'로 전환하는 것이 잘못된 이유는 무엇입니까? –

0
for i, (n, a, c) in enumerate(stooges): 
    print 'Stooge %d: %s %s %d' % (i + 1, n, c, a) 

Stooge 1: Curly New York 35 
Stooge 2: Larry Pennsylvania 33 
Stooge 3: Moe New York 40 
관련 문제