Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

목록에 Python에서 연속 숫자가 포함되어 있는지 확인하십시오.

<시간/>

데이터 분석의 필요에 따라 파이썬 데이터 컨테이너에 순차 번호가 있는지 확인해야 할 수도 있습니다. 아래 프로그램에서 우리는 Alist의 요소 중 연속 숫자가 있는지 알아냅니다.

범위 및 정렬됨

sorted 함수는 목록의 요소를 정렬된 순서로 재정렬합니다. 그런 다음 최소 및 최대 함수를 사용하여 목록에서 가장 낮은 숫자와 가장 높은 숫자를 취하는 범위 함수를 적용합니다. 위 작업의 결과를 두 개의 목록에 저장하고 동일한지 비교합니다.

예시

listA =[23,20,22,21,24]sorted_list =sorted(listA)#sorted(l) ==range_list=list(range(min(listA), max(listA)+1))if sorted_list ==range_list:print("listA에는 연속 숫자가 있습니다.")else:print("listA에는 연속 숫자가 없습니다.")# 다시 확인합니다listB =[23,20,13,21,24]sorted_list =sorted(listB)#sorted(l ) ==range_list=list(range(min(listB), max(listB)+1))if sorted_list ==range_list:print("ListB에 연속 숫자가 있습니다.")else:print("ListB에 연속 숫자가 없습니다.") 

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

listA에 연속 숫자가 있음ListB에 연속 숫자가 없습니다.

numpy diff 및 정렬됨

numpy의 diff 함수는 정렬된 각 숫자의 차이를 찾을 수 있습니다. 우리는 이 차이를 합산합니다. 모든 숫자가 연속적이면 목록의 길이와 일치합니다.

예시

numpy를 nplistA =[23,20,22,21,24]sorted_list_diffs =sum(np.diff(sorted(listA)))if sorted_list_diffs ==(len(listA) - 1)로 가져오기:print("listA 연속 번호가 있습니다")else:print("listA에 연속 번호가 없습니다")# 다시 확인listB =[23,20,13,21,24]sorted_list_diffs =sum(np.diff(sorted(listB)))if sorted_list_diffs ==(len(listB) - 1):print("ListB에 연속 숫자가 있습니다.")else:print("ListB에 연속 숫자가 없습니다.")

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

listA에 연속 숫자가 있음ListB에 연속 숫자가 없습니다.