For문 2개 혹은 3개 이상을 동시에 실행시키기고싶은데 어떻게하나요?
조회수 1930회
for n in [2,0,-2]:
f = int(440*pow(2.,n/12.)+0.5)
freq_of_tones = np.append(freq_of_tones, alone_tone(freq=f,dur=0.3))
for n in [0,2,5]:
j = int(440*pow(2.,n/12.)+0.5)
if n==0:
j=0
freq_of_tones = np.append(freq_of_tones, alone_tone(freq=f,freq1=j,dur=0.3))
pygame_play(freq_of_tones,rate=44100)
코딩 일부분입니다. 두 for문을 위에서부터 차례대로 말고 동시에 실행하고 함께 끝내고싶은데 해결방법좀 부탁드립니다. 악보를 짜고있는데 두 주파수를 합쳐 화음을 넣는 부분입니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
파이썬의 zip(*iterables)을 이용하면 여러 리스트를 한번에 순회할 수 있습니다.
list1 = [1, 2, 3, 4] list2 = [100, 120, 30, 300] list3 = [392, 2, 33, 1] answer = [] for i, j, k in zip(list1, list2, list3): answer.append( i + j + k )
처럼요. 질문하신 분의 경우에는
for n1, n2 in zip([2,0,-2], [0,2,5]): f = int(440*pow(2.,n1/12.)+0.5) freq_of_tones = np.append(freq_of_tones, alone_tone(freq=f,dur=0.3)) j = int(440*pow(2.,n2/12.)+0.5) if n2==0: j=0 freq_of_tones = np.append(freq_of_tones, alone_tone(freq=f,freq1=j,dur=0.3)) pygame_play(freq_of_tones,rate=44100)
같은 형태겠네요~
댓글 입력