저는 Python을 처음 접했을뿐만 아니라 현재 상황을 파악할 수 없습니다. 파이썬은 for
을 사용하여 목록을 반복 할 때 다른 모든 숫자를 건너 뜁니다. 그러나 특정 수의 요소가있는 경우에만 처리됩니다.이 코드는 제가 수행중인 더 큰 프로젝트의 일부이지만이 코드 스 니펫은이를 보여줍니다.반복되는 목록을 변경할 때 예기치 않은 동작이 발생했습니다.
코드는 7이 될 때까지 제대로 작동하며, 다른 모든 숫자는 건너 뜁니다. 나는 반복하는 과정에있는 목록을 편집하지 않기 때문에 피하는 것이지만 for
은 일부를 호출하지도 않습니다. 다른 번호가 아닌 각 번호를 반복하려면 어떻게해야합니까? 왜이 일을하는거야?
코드 :
는import math
i1 = 60
l1 = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 49, 53, 59]
l3 = l1
print(l1)
for a in l1:
print(a)
if a > math.floor(math.sqrt(i1)):
print("REMOVED: " + str(a))
l3.remove(a)
print(l3)
출력 : 당신이 그 (것)들을 고유하려는 경우
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 49, 53, 59]
2
3
5
7
11
REMOVED: 11
17
REMOVED: 17
23
REMOVED: 23
31
REMOVED: 31
41
REMOVED: 41
47
REMOVED: 47
53
REMOVED: 53
[2, 3, 5, 7, 13, 19, 29, 37, 43, 49, 59]
명확한 답을 얻기 위해 필요한 세부 사항 (예!)은 – msw