프로그래밍/파이썬(Python)

파이썬(Python) 데이터 타입: 숫자, 문자열, 리스트, 딕셔너리 완벽 이해 (+QnA)

프리다이어비티즈 2024. 11. 19. 22:30
반응형

목차

    파이썬(Python)에서 가장 중요한 요소 중 하나는 데이터 타입입니다. 데이터 타입은 변수에 저장되는 데이터의 성격을 정의하며, 프로그램의 동작 방식을 결정합니다. 이번 글에서는 숫자, 문자열, 리스트, 딕셔너리파이썬에서 가장 많이 사용되는 데이터 타입을 초보자들도 쉽게 이해할 수 있도록 설명하겠습니다.

    공지

    본 포스팅의 무단도용 및 배포를 금지합니다.

    1. 숫자(Numbers)

    반응형

    파이썬에서 숫자 데이터 타입정수, 실수, 복소수로 나눌 수 있습니다. 숫자는 수학 연산에 많이 사용되며, 정수실수 간의 계산도 자유롭게 가능합니다.

    1) 정수형(Integer): 소수점이 없는 숫자입니다.

    a = 10   # 정수형
    b = -5   # 음수

     

    2) 실수형(Float): 소수점을 포함하는 숫자입니다.

    pi = 3.14  # 실수형
    g = -9.81  # 음수 실수형

     

    3) 복소수형(Complex): 실수허수로 구성된 숫자입니다. j를 사용해 허수를 표현합니다.

    z = 2 + 3j  # 복소수

     

    4) 기본적인 연산: 덧셈, 뺄셈, 곱셈, 나눗셈은 물론 제곱(**)과 나머지(%) 연산도 가능합니다.

    x = 10
    y = 3
    print(x + y)  # 13 (덧셈)
    print(x ** y) # 1000 (10의 3승)

     

    2. 문자열(String)

    문자열문자집합을 나타내며, 작은 따옴표(')나 큰 따옴표(")로 묶어 표현합니다. 파이썬에서는 문자열을 다루는 다양한 기능을 제공하여 데이터 처리가 매우 편리합니다.

    1) 문자열 선언: 문자열은 작은 따옴표나 큰 따옴표로 정의할 수 있습니다.

    greeting = "Hello, World!"
    name = 'Alice'

     

    2) 문자열 연결: 문자열은 + 연산자를 사용해 연결할 수 있습니다.

    full_greeting = greeting + " " + name
    print(full_greeting)  # "Hello, World! Alice"

     

    3) 문자열 반복: * 연산자를 사용해 문자열을 반복할 수 있습니다.

    repeated = "Hi! " * 3
    print(repeated)  # "Hi! Hi! Hi! "
     

    4) 문자열 인덱싱과 슬라이싱: 문자열의 특정 문자에 접근하거나 부분 문자열을 추출할 수 있습니다.

    word = "Python"
    print(word[0])   # 'P' (인덱싱, 첫 번째 문자)
    print(word[1:4]) # 'yth' (슬라이싱, 1번 인덱스부터 3번까지)

     

    5) 문자열 메소드: len(), .upper(), .lower(), .replace() 등 문자열을 처리하는 유용한 메소드들이 있습니다.

    message = "hello python"
    print(message.upper())      # "HELLO PYTHON"
    print(message.replace("python", "world"))  # "hello world"

     

    3. 리스트(List)

    리스트여러 개의 데이터를 모아 하나의 변수에 저장할 수 있는 자료구조입니다. 대괄호([])를 사용하며, 서로 다른 타입의 데이터를 함께 저장할 수도 있습니다.

    1) 리스트 선언: 대괄호 안에 데이터를 나열하여 리스트를 정의합니다.

    numbers = [1, 2, 3, 4, 5]
    mixed_list = [1, "apple", 3.14, True]

     

    2) 리스트 인덱싱과 슬라이싱: 리스트의 특정 요소에 접근하거나 부분 리스트를 추출할 수 있습니다.

    print(numbers[0])    # 1 (첫 번째 요소)
    print(numbers[2:4])  # [3, 4] (슬라이싱)

     

    3) 리스트 추가와 삭제:

    append(): 리스트의 끝에 요소를 추가합니다.

    numbers.append(6)
    print(numbers)  # [1, 2, 3, 4, 5, 6]

     

    remove(): 리스트에서 특정 값을 제거합니다.

    numbers.remove(3)
    print(numbers)  # [1, 2, 4, 5, 6]

     

    4) 리스트 내포(List Comprehension): 짧은 코드로 리스트를 생성할 수 있는 방법입니다.

    squares = [x ** 2 for x in range(1, 6)]
    print(squares)  # [1, 4, 9, 16, 25]

     

    4. 딕셔너리(Dictionary)

    딕셔너리키-값 쌍을 저장하는 자료구조입니다. 중괄호({})를 사용하며, 각각의 는 고유해야 합니다. 딕셔너리빠른 데이터 검색을 위해 사용됩니다.

     

    1) 딕셔너리 선언: 중괄호를 사용해 키와 값을 정의합니다.

    person = {
        "name": "Alice",
        "age": 25,
        "city": "New York"
    }

     

     

    2) 값 접근: 를 이용해 값을 얻을 수 있습니다.

    print(person["name"])  # "Alice"
    print(person["age"])   # 25

     

     

    3) 값 추가와 삭제:

    추가: 새로운 키-값 쌍을 추가할 수 있습니다.

    person["job"] = "Engineer"
    print(person)  # {'name': 'Alice', 'age': 25, 'city': 'New York', 'job': 'Engineer'}

     

    삭제: del 키워드를 사용해 키-값 쌍을 삭제합니다.

    del person["age"]
    print(person)  # {'name': 'Alice', 'city': 'New York', 'job': 'Engineer'}

     

     

    4)딕셔너리 메소드:

    .keys(): 딕셔너리모든 키를 반환합니다.

    print(person.keys())  # dict_keys(['name', 'city', 'job'])
     

    .values(): 딕셔너리모든 값을 반환합니다.

    print(person.values())  # dict_values(['Alice', 'New York', 'Engineer'])

     

    .items(): 키-값 쌍을 튜플 형태로 반환합니다.

    print(person.items())  # dict_items([('name', 'Alice'), ('city', 'New York'), ('job', 'Engineer')])

     

    7. QnA

    1. 리스트와 딕셔너리의 차이점은 무엇인가요?
    리스트순서가 있는 데이터 집합으로, 인덱스를 사용해 접근할 수 있는 데이터 타입입니다. 딕셔너리키-값 쌍으로 데이터를 저장하며, 특정 키를 사용해 값을 찾는 방식으로 동작합니다. 리스트순서가 중요할 때, 딕셔너리빠른 데이터 검색매핑이 필요할 때 유용합니다.

     

    2. 파이썬에서 숫자형 데이터 타입의 종류는 무엇인가요?
    파이썬에서 숫자형 데이터 타입은 크게 세 가지로 구분됩니다: 정수형(Integer), 실수형(Float), 복소수형(Complex)입니다. 정수형은 소수점이 없는 숫자를, 실수형은 소수점을 포함하는 숫자를, 복소수형은 실수와 허수 부분을 포함한 숫자를 나타냅니다.

     

    3. 문자열을 리스트로 변환할 수 있나요?
    네, 문자열리스트로 변환할 수 있습니다. 문자열을 하나씩 분리하여 리스트로 만들기 위해 list() 함수를 사용할 수 있습니다. 또는, split() 메소드를 사용해 특정 구분자로 문자열을 나누어 리스트로 변환할 수 있습니다.

    word = "hello"
    letters = list(word)  # ['h', 'e', 'l', 'l', 'o']
    
    sentence = "Hello Python World"
    words = sentence.split()  # ['Hello', 'Python', 'World']

     

    4. 리스트에 다른 데이터 타입들을 함께 저장할 수 있나요?
    네, 파이썬 리스트는 서로 다른 데이터 타입들을 함께 저장할 수 있습니다. 예를 들어, 정수, 실수, 문자열, 논리형 등을 한 리스트에 포함할 수 있습니다. 이는 파이썬 리스트의 유연성과 강력한 기능을 나타냅니다.

    mixed_list = [1, "apple", 3.14, True]

     

    5. 딕셔너리의 키로 리스트를 사용할 수 있나요?
    아니요, 딕셔너리의 키변경 불가능한 데이터 타입이어야 합니다. 리스트는 변경 가능한 데이터 타입이기 때문에 딕셔너리의 로 사용할 수 없습니다. 대신 튜플과 같은 변경 불가능한 타입을 키로 사용할 수 있습니다.

     

    6. 파이썬에서 문자열은 변경할 수 있나요?
    아니요, 파이썬 문자열불변(immutable) 특성을 가집니다. 즉, 문자열을 생성한 후에는 그 내용을 변경할 수 없습니다. 문자열을 변경하려면 새로운 문자열을 생성해야 합니다.

    text = "hello"
    # text[0] = 'H'  # 오류 발생 (불변 특성 때문에 수정 불가)
    text = "H" + text[1:]  # 새로운 문자열 생성 ("Hello")

     

    7. 리스트와 문자열의 공통점은 무엇인가요?
    리스트문자열은 둘 다 인덱싱슬라이싱이 가능합니다. 예를 들어, 문자열의 특정 문자나 리스트의 특정 요소에 인덱스를 사용해 접근할 수 있으며, 부분 문자열이나 부분 리스트슬라이싱을 통해 추출할 수 있습니다. 둘 다 시퀀스 데이터 타입에 속하기 때문에 이와 같은 공통점을 가집니다.

    word = "Python"
    letters = word[0:3]  # 'Pyt'
    
    numbers = [1, 2, 3, 4, 5]
    subset = numbers[1:4]  # [2, 3, 4]

     

    8. 리스트의 크기를 변경할 수 있나요?
    네, 리스트동적 크기를 가지기 때문에 요소를 추가하거나 삭제하여 크기를 변경할 수 있습니다. append(), remove(), extend(), pop() 등을 사용해 리스트의 크기를 유동적으로 조정할 수 있습니다.

    numbers = [1, 2, 3]
    numbers.append(4)  # [1, 2, 3, 4]
    numbers.remove(2)  # [1, 3, 4]

     

    9. 딕셔너리에서 같은 키를 여러 번 사용할 수 있나요?
    딕셔너리에서는 가 고유해야 합니다. 즉, 같은 키를 여러 번 사용할 수 없습니다. 만약 동일한 키로 값을 할당하게 되면, 기존의 값이 덮어쓰기 됩니다.

    person = {"name": "Alice", "age": 25}
    person["age"] = 30  # 키 "age"의 값이 25에서 30으로 변경됨

     

    10. 파이썬에서 리스트를 복사할 때 주의할 점은 무엇인가요?
    리스트를 복사할 때 주의할 점은 얕은 복사깊은 복사입니다. 단순히 = 연산자를 사용하면 리스트의 참조만 복사되므로 원본 리스트가 변경되면 복사본도 함께 변경됩니다. 이를 방지하려면 리스트의 슬라이싱([:])을 사용하거나, copy() 메소드를 사용해 복사해야 합니다. copy.deepcopy() 함수는 중첩된 리스트까지 모두 복사합니다.

    import copy
    
    original = [1, 2, [3, 4]]
    shallow_copy = original[:]  # 얕은 복사
    deep_copy = copy.deepcopy(original)  # 깊은 복사
    
    original[2][0] = 99
    print(shallow_copy)  # [1, 2, [99, 4]]
    print(deep_copy)     # [1, 2, [3, 4]]

     

    11. 파이썬에서 숫자 데이터를 문자열로 변환할 수 있나요?
    네, 숫자 데이터문자열로 변환하려면 str() 함수를 사용합니다. 반대로 문자열을 숫자로 변환하려면 int() 또는 float()를 사용할 수 있습니다.

    number = 10
    text = str(number)  # 숫자 10을 문자열 "10"으로 변환
    print(text)  # "10"

     

    12. 딕셔너리 안에 리스트를 저장할 수 있나요?
    네, 딕셔너리의 값으로 리스트를 저장할 수 있습니다. 딕셔너리키-값 쌍에서 부분에 리스트를 넣어 여러 데이터를 그룹화할 수 있습니다.

    grades = {
        "Alice": [90, 85, 82],
        "Bob": [88, 79, 92]
    }
    print(grades["Alice"])  # [90, 85, 82]

     

    13. 리스트를 정렬하려면 어떻게 해야 하나요?
    리스트오름차순 또는 내림차순으로 정렬하려면 sort() 메소드나 sorted() 함수를 사용할 수 있습니다. sort()는 리스트 자체를 변경하며, sorted()는 정렬된 새로운 리스트를 반환합니다.

    numbers = [3, 1, 4, 1, 5]
    numbers.sort()  # 원본 리스트를 오름차순으로 정렬
    print(numbers)  # [1, 1, 3, 4, 5]
    
    desc_numbers = sorted(numbers, reverse=True)  # 내림차순 정렬된 새로운 리스트 반환
    print(desc_numbers)  # [5, 4, 3, 1, 1]

     

    14. 문자열에서 특정 문자가 몇 번 등장했는지 세려면 어떻게 하나요?
    문자열에서 특정 문자가 몇 번 등장했는지 세려면 .count() 메소드를 사용합니다. 이 메소드는 문자열 내에서 특정 문자부분 문자열의 등장 횟수를 반환합니다.

    sentence = "hello world"
    count_l = sentence.count("l")
    print(count_l)  # 3 ('l'이 3번 등장)

     

    15. 딕셔너리에서 키가 존재하는지 확인하려면 어떻게 하나요?
    딕셔너리에서 특정 가 존재하는지 확인하려면 in 키워드를 사용합니다. 이 키워드를 사용해 딕셔너리에 해당 키가 있는지 여부를 True 또는 False로 반환받을 수 있습니다.

    person = {"name": "Alice", "age": 25}
    if "name" in person:
        print("이름이 존재합니다.")  # 출력: 이름이 존재합니다.

     


    파이썬데이터 타입은 프로그램의 기초를 이루며, 이를 잘 이해하는 것이 중요합니다. 숫자, 문자열, 리스트, 딕셔너리는 각각 특정한 상황에서 유용하게 사용되며, 이러한 자료형을 잘 활용하면 효율적인 코드 작성이 가능합니다. 숫자는 기본적인 계산과 데이터 연산에 사용되며, 문자열텍스트 데이터 처리에 필수적입니다. 리스트여러 데이터순서대로 관리할 때, 딕셔너리키-값 구조로 데이터 매핑이 필요할 때 사용됩니다.

     

    이제 여러분도 파이썬의 다양한 데이터 타입을 활용하여 프로그래밍에 한 걸음 더 가까워질 수 있습니다. 연습을 통해 각 데이터 타입의 특성을 잘 이해하고, 다양한 상황에서 적절하게 활용해 보세요.

    반응형