파이썬 다중 FOR 문(3중?)
조회수 4015회
first = ['a', 'b', 'c', 'd', 'e' ]
second = ['x', 'y', 'z' ]
third = ['apple', 'banana' ]
N = 10
위에 리스트들을 활용해서 For문으로 N번 반복 하고 싶습니다.
아무리 생각해도 답이 안나오네요. ㅠ 아래처럼 하면 first까진 되는데 나머지도 대입하고 싶은데..
for i , j in enumerate(first*2):
i = i + 1
print(i, j)
ex) 이렇게 나오게 하고 싶습니다.
1: a, x, apple
2: b, y, banana
3: c, z, apple
4: d, x, banana
5: e, y, apple
6: a, z, banana
7: b, x, apple
8: c, y, banana
9: d, z, apple
10: e, x, banana
-
(•́ ✖ •̀)
알 수 없는 사용자
3 답변
-
3중으로 안 해도 충분히 되네요..!
first = ['a', 'b', 'c', 'd', 'e' ] second = ['x', 'y', 'z' ] third = ['apple', 'banana' ] N = 10 for i in range(N) : print("%s: %s, %s, %s" % (i + 1, first[i - (i//5)*5], second[i - (i//3)*3], third[i - (i//2)*2]))
-
(•́ ✖ •̀)
알 수 없는 사용자
-
-
itertools 를 사용하는 방법도 있습니다.
참고해보세요.
>>> first = ['a', 'b', 'c', 'd', 'e' ] >>> second = ['x', 'y', 'z' ] >>> third = ['apple', 'banana' ] >>> N = 10 >>> from itertools import cycle, islice >>> for v1, v2, v3 in zip(islice(cycle(first), N), islice(cycle(second), N), islice(cycle(third), N)): ... print(v1, v2, v3) ... a x apple b y banana c z apple d x banana e y apple a z banana b x apple c y banana d z apple e x banana
-
와우 감사합니다. :-)
저는 결국 zip 을 써서 풀긴 했는데 이게 더 명확한 답인 것 같네요!
-
(•́ ✖ •̀)
알 수 없는 사용자
- zip을 써서 푸신 건 어떻게 푸셨는지 공유 가능하실까요? 알 수 없는 사용자 2017.11.20 07:14
- ziptest = list(zip(first, second, third)) 로 하였는데 각 변수값에 N개가 나오도록 곱해주었습니다. 매번 N개를 곱해줘야 하는 번거로움이 있더라구요, 알 수 없는 사용자 2017.12.10 18:45
-
댓글 입력