다음과 같은 두 가지 기능이 있습니다.목록에있는 목록을 파이썬에서 목록으로 가져 오기
목록 이해를 통해 취해진 색인이 처음으로 일치하는 것으로 보이므로 다른 색인에서 같은 값을 가질 때 모호한 점이 있습니다.
filter2
에서 목록 이해력을 수정할 수있는 방법이 있습니까? filter1
과 같은 결과가 나옵니까?
L = [98.75011926342906,
97.8178200008178,
98.6138182016438,
98.55520874507613,
98.25262038791283,
98.75011926342906,
99.06770073738875,
98.66970163697574,
98.56611283001895,
98.47751713985852,
98.66970163697574,
97.8178200008178]
def filter1(L, threshold=98.7):
items = []
for i in range(len(L)):
if L[i] < threshold:
items.append(i)
return items
def filter2(L, threshold=98.7):
items = [L.index(x) for x in L if x <= threshold]
return items
print filter1(L)
>>> [1, 2, 3, 4, 7, 8, 9, 10, 11]
print filter2(L)
>>> [1, 2, 3, 4, 7, 8, 9, 7, 1]
향후 작은 비트에주의하십시오. 제 말은'filter1'에서'<'sign을 사용하고,'filter2'에서'<='를 사용한다는 것입니다. 이 두 필터는 서로 다른 논리를 사용하기 때문에 결과도 다릅니다. 'index'는 발견 된 첫 번째 색인의 값을 반환합니다 (즉, 결함이있는 곳). –