days = ['Mon','Tue','Wed','Thu','Fri','Sat','Sun']
sub_weights = {
'chem': 5,
'phy': 5,
'math': 5,
'spanish': 4,
'eco': 4,
'cs': 2,
'eng': 2
}
ilists = []
for x in sub_weights:
for sub_weight in sub_weights:
while sub_weight != x:
i = [sub_weight, x]
ilists.append(i)
print(ilists)
두 개의 카운터를 함께 사용하고 함께 살펴볼 수있는 두 가지 주제 가능성을 탐색하고 싶었 기 때문에 가중치를 할당했습니다. 나는 그것을 숭고한 대 코드로 실행하려고 시도했지만 오류가 발생하지 않았고 컴파일되지 않고 컴퓨터가 정말 느려질 것입니다. 한 주제를 두 번 반복하고 싶지 않았기 때문에 while 루프를 작성했습니다. 그게 다인 것 같지만 여전히 깨뜨릴 수 없습니다.
while sub_weight != x
무한 루프입니다. 루프의 본문은 변경되지 sub_weight
도 않고 변경되지 도 x
않으므로 ilists
프로세스가 너무 많은 메모리를 소비 하고 종료 될 때까지 요소를 무한 반복합니다 . if
조건 을 사용하려는 것 같습니다 .
for x in sub_weights:
for sub_weight in sub_weights:
if sub_weight != x: # Here!
i = [sub_weight, x]
ilists.append(i)
편집 :
이것을 달성하는 더 "파이썬"방법은 itertools.product
목록 이해에서 동일한 항목의 쌍 을 사용 하고 필터링하는 것입니다.
from itertools import product
ilists = [p for p in product(sub_weights, repeat = 2) if p[0] != p[1]]
print(len(ilists))
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다