Python 에서 리스트가 숫자만 포함하는지 확인하는 방법

PythonBeginner
지금 연습하기

소개

이 랩에서는 Python 에서 리스트가 숫자만 포함하는지 확인하는 방법을 배우게 됩니다. 여기에는 정수, 부동 소수점 숫자, 그리고 혼합된 숫자의 리스트를 포함하는 숫자 리스트 정의가 포함됩니다. numeric_lists.py라는 이름의 Python 파일을 생성하고 VS Code 편집기를 사용하여 이러한 리스트를 정의하고 콘솔에 출력합니다.

이 랩은 정수, 부동 소수점 숫자, 그리고 둘의 혼합 리스트를 정의하는 과정을 안내하며, Python 을 사용하여 이러한 리스트를 생성하고 출력하는 방법을 보여줍니다. print() 함수를 사용하여 각 리스트의 내용을 표시하여 Python 에서 숫자 리스트를 사용하는 방법을 이해할 수 있도록 합니다.

숫자 리스트 정의

이 단계에서는 Python 에서 숫자 리스트를 정의하는 방법을 배우게 됩니다. 리스트는 항목의 모음이며, 이 경우 숫자만 포함하는 리스트에 집중할 것입니다. 리스트는 Python 의 기본적인 데이터 구조이며, 정렬된 데이터 시퀀스를 저장하고 조작하는 데 사용됩니다.

먼저, VS Code 편집기를 사용하여 ~/project 디렉토리에 numeric_lists.py라는 새 Python 파일을 생성해 보겠습니다.

~/project/numeric_lists.py

이제 편집기에서 numeric_lists.py를 열고 다음 코드를 추가하여 정수 리스트를 정의합니다.

## 정수 리스트 정의
integer_list = [1, 2, 3, 4, 5]

## 콘솔에 리스트 출력
print(integer_list)

파일을 저장합니다. 다음으로, VS Code 에서 터미널을 열고 ~/project 디렉토리로 이동합니다. 기본적으로 이미 이 디렉토리에 있을 것입니다. 이제 다음 명령을 사용하여 Python 스크립트를 실행합니다.

python numeric_lists.py

다음 출력을 볼 수 있습니다.

[1, 2, 3, 4, 5]

이제 부동 소수점 숫자 (소수) 의 리스트를 정의해 보겠습니다.

numeric_lists.py 파일을 수정하여 다음을 포함합니다.

## 부동 소수점 숫자 리스트 정의
float_list = [1.0, 2.5, 3.7, 4.2, 5.9]

## 콘솔에 리스트 출력
print(float_list)

파일을 저장하고 스크립트를 다시 실행합니다.

python numeric_lists.py

다음 출력을 볼 수 있습니다.

[1.0, 2.5, 3.7, 4.2, 5.9]

정수와 부동 소수점 숫자가 혼합된 리스트를 만들 수도 있습니다.

numeric_lists.py 파일을 수정하여 다음을 포함합니다.

## 혼합 숫자 리스트 정의 (정수 및 부동 소수점)
mixed_list = [1, 2.0, 3, 4.5, 5]

## 콘솔에 리스트 출력
print(mixed_list)

파일을 저장하고 스크립트를 다시 실행합니다.

python numeric_lists.py

다음 출력을 볼 수 있습니다.

[1, 2.0, 3, 4.5, 5]

축하합니다! Python 에서 숫자 리스트를 성공적으로 정의하고 출력했습니다. 이는 Python 에서 숫자 데이터를 사용하는 기본적인 단계입니다.

all() 함수와 isinstance() 함수 사용

이 단계에서는 리스트의 모든 요소가 특정 숫자 유형인지 확인하기 위해 all() 함수를 isinstance() 함수와 함께 사용하는 방법을 배우게 됩니다. 이는 데이터를 검증하고 코드가 예상대로 작동하도록 보장하는 데 유용한 기술입니다.

all() 함수는 반복 가능한 객체 (예: 리스트) 의 모든 요소가 참이면 True를 반환합니다. isinstance() 함수는 객체가 지정된 클래스 또는 유형의 인스턴스인지 확인합니다.

이전 단계에서 생성한 numeric_lists.py 파일을 수정하여 다음 코드를 포함해 보겠습니다.

def check_if_all_numeric(data):
  """
  리스트의 모든 요소가 정수 또는 부동 소수점 숫자인지 확인합니다.
  """
  return all(isinstance(item, (int, float)) for item in data)

## 테스트 케이스
integer_list = [1, 2, 3, 4, 5]
float_list = [1.0, 2.5, 3.7, 4.2, 5.9]
mixed_list = [1, 2.0, 3, 4.5, 5]
string_list = [1, 2, "hello", 4.5, 5]

print(f"정수 리스트는 모두 숫자입니다: {check_if_all_numeric(integer_list)}")
print(f"부동 소수점 리스트는 모두 숫자입니다: {check_if_all_numeric(float_list)}")
print(f"혼합 리스트는 모두 숫자입니다: {check_if_all_numeric(mixed_list)}")
print(f"문자열 리스트는 모두 숫자입니다: {check_if_all_numeric(string_list)}")

다음은 코드의 분석입니다.

  • 리스트를 입력으로 받는 check_if_all_numeric(data) 함수를 정의합니다.
  • 함수 내부에서 제너레이터 표현식 (isinstance(item, (int, float)) for item in data)와 함께 all()을 사용합니다.
  • 제너레이터 표현식은 data 리스트의 각 item을 반복하고 isinstance()를 사용하여 int 또는 float의 인스턴스인지 확인합니다.
  • all()은 리스트의 모든 항목이 정수 또는 부동 소수점 숫자일 경우에만 True를 반환하고, 그렇지 않으면 False를 반환합니다.
  • 그런 다음 다른 리스트로 함수를 테스트하고 결과를 출력합니다.

numeric_lists.py 파일을 저장하고 터미널에서 실행합니다.

python numeric_lists.py

다음 출력을 볼 수 있습니다.

Integer list is all numeric: True
Float list is all numeric: True
Mixed list is all numeric: True
String list is all numeric: False

이 출력은 check_if_all_numeric() 함수가 리스트의 모든 요소가 숫자인지 여부를 올바르게 식별함을 보여줍니다. 문자열 리스트에는 문자열이 포함되어 있으므로 함수는 False를 반환합니다.

빈 리스트 처리

이 단계에서는 all()isinstance() 함수를 사용할 때 빈 리스트를 처리하는 방법을 배우게 됩니다. 빈 리스트는 요소가 없는 리스트입니다. 코드에서 예기치 않은 동작을 방지하려면 빈 리스트를 올바르게 처리하는 것이 중요합니다.

이전 단계에서 생성한 numeric_lists.py 파일을 수정하여 check_if_all_numeric() 함수에 빈 리스트에 대한 검사를 포함해 보겠습니다.

def check_if_all_numeric(data):
  """
  리스트의 모든 요소가 정수 또는 부동 소수점 숫자인지 확인합니다.
  빈 리스트를 적절하게 처리합니다.
  """
  if not data:
    return True  ## 빈 리스트는 모두 숫자로 간주될 수 있습니다.

  return all(isinstance(item, (int, float)) for item in data)

## 테스트 케이스
integer_list = [1, 2, 3, 4, 5]
float_list = [1.0, 2.5, 3.7, 4.2, 5.9]
mixed_list = [1, 2.0, 3, 4.5, 5]
string_list = [1, 2, "hello", 4.5, 5]
empty_list = []

print(f"정수 리스트는 모두 숫자입니다: {check_if_all_numeric(integer_list)}")
print(f"부동 소수점 리스트는 모두 숫자입니다: {check_if_all_numeric(float_list)}")
print(f"혼합 리스트는 모두 숫자입니다: {check_if_all_numeric(mixed_list)}")
print(f"문자열 리스트는 모두 숫자입니다: {check_if_all_numeric(string_list)}")
print(f"빈 리스트는 모두 숫자입니다: {check_if_all_numeric(empty_list)}")

변경 사항은 다음과 같습니다.

  • check_if_all_numeric() 함수의 시작 부분에 if not data: 검사를 추가했습니다. 이는 리스트가 비어 있는지 확인합니다.
  • 리스트가 비어 있으면 True를 반환합니다. 이는 빈 리스트가 모든 요소가 숫자라는 조건을 충족하는 것으로 간주될 수 있기 때문입니다 (숫자가 아닌 요소가 없으므로).
  • empty_list 테스트 케이스를 추가했습니다.

numeric_lists.py 파일을 저장하고 터미널에서 실행합니다.

python numeric_lists.py

다음 출력을 볼 수 있습니다.

Integer list is all numeric: True
Float list is all numeric: True
Mixed list is all numeric: True
String list is all numeric: False
Empty list is all numeric: True

보시다시피, check_if_all_numeric() 함수는 이제 빈 리스트를 올바르게 처리하고 이에 대해 True를 반환합니다. 이렇게 하면 잠재적으로 빈 리스트를 처리할 때 코드가 더 강력해지고 오류가 발생할 가능성이 줄어듭니다.

요약

이 Lab 에서는 Python 에서 숫자 리스트를 정의하는 데 중점을 둡니다. 정수, 부동 소수점 숫자 및 혼합 숫자 유형의 리스트를 다룹니다. 이 과정에는 Python 파일인 numeric_lists.py를 생성하고 대괄호와 쉼표로 구분된 값을 사용하여 리스트 정의를 채우는 작업이 포함됩니다. 그런 다음 print() 함수를 사용하여 이러한 리스트를 콘솔에 표시하여 다양한 숫자 리스트를 생성하고 출력하는 방법을 보여줍니다.

이 Lab 은 Python 의 기본 데이터 구조인 리스트와 정렬된 숫자 데이터 시퀀스를 저장하는 기능을 강조합니다. 정수, 부동 소수점 숫자 및 둘의 조합을 포함하여 다양한 유형의 숫자 리스트를 정의하고 출력함으로써, 이 Lab 은 Python 리스트 내에서 숫자 데이터를 사용하는 방법에 대한 실질적인 소개를 제공합니다.