dict,set

혜쿰·2023년 10월 18일
0
post-thumbnail

📢 dict

파이썬의 dict (사전, Dictionary)는 키-값 쌍을 저장하는 데이터 구조이다. dict는 해시 맵 또는 연관 배열로도 알려져 있으며, 매우 유용하다. 그 외에도 다양한 용도로 활용된다.

🔎 특징

1. 키-값 쌍 (Key-Value Pairs)

  • dict는 키와 값의 쌍을 저장한다. 각 키는 고유해야 하며, 해당 키에 연결된 값에 접근할 수 있다.

2. 가변성 (Mutable)

  • dict는 가변적인 데이터 타입이므로 새로운 키-값 쌍을 추가하거나 기존 키의 값을 변경할 수 있다.

3. 키의 불변성 (Immutable Keys)

  • dict의 키는 불변(immutable)해야 한다. 예를 들어, 정수, 문자열, 튜플(튜플의 원소도 불변이어야 함) 등이 유효한 키 타입이다.

🔎 사용법

1. 사전 선언 및 초기화

  • dict를 생성하려면 중괄호 {}를 사용하거나 dict() 생성자를 호출한다.

  • 초기값을 가진 dict를 생성할 때 중괄호 내에 키-값 쌍을 지정한다.

    my_dict = {}  # 빈 사전
    person = {'name': 'Alice', 'age': 30, 'city': 'New York'}

2. 요소 액세스

  • dict에서 값을 얻으려면 키를 사용한다.

    name = person['name']

3. 키의 존재 확인

  • in 키워드를 사용하여 키의 존재 여부를 확인할 수 있다.

    if 'age' in person:
        # 'age' 키가 존재하면 실행

4. 키-값 추가 및 수정

  • 새로운 키-값 쌍을 추가하거나 기존 키의 값을 수정할 수 있다.

    person['email'] = 'alice@example.com'  # 새로운 키-값 추가
    person['age'] = 31  # 'age' 키의 값 수정

5. 키-값 삭제

  • del 키워드를 사용하여 특정 키-값 쌍을 삭제할 수 있다.

    del person['city']  # 'city' 키-값 삭제

6. 키, 값, 항목 가져오기

  • keys(), values(), items() 메서드를 사용하여 각각 키, 값, 키-값 쌍을 가져올 수 있다.

    keys = person.keys()  # 모든 키 가져오기
    values = person.values()  # 모든 값 가져오기
    items = person.items()  # 모든 키-값 쌍 가져오기

7. 반복문 사용

  • for 루프를 사용하여 dict의 키, 값, 또는 항목을 순회할 수 있다.

    for key in person:
        print(key, person[key])

dict는 데이터를 효율적으로 검색하는 데 매우 유용하며, 파이썬에서 많이 활용된다.

🔎 선언

**을 사용하여 딕셔너리를 선언하는 것은 "키워드 인자" 또는 "키워드 아규먼트"를 활용한 방식이라고 한다. 이를 사용하는 이유와 장점은 다음과 같다.

1. 편리성과 가독성

**를 사용하면 함수 호출 시 매개변수와 값을 직관적으로 나열할 수 있어 가독성이 향상된다. 이는 특히 함수에 많은 매개변수가 필요한 경우에 유용하다.

2. 명확한 키

**를 사용하면 함수가 어떤 키워드 인자를 기대하는지 명확하게 나타낼 수 있다. 이렇게 하면 함수를 사용하는 사람이 함수 시그니처를 이해하고 올바르게 사용하기가 더 쉬워진다.

3. 확장성

함수가 추가 매개변수를 지원하도록 업데이트되면, 기존 코드를 변경하지 않고 **를 사용하여 함수를 호출할 수 있다.

**을 사용하는 것은 특히 함수의 인자가 많고 복잡한 경우, 키워드 인자를 정확하게 전달하고 관리하는 데 유용하다.

📢 set

파이썬에서 set은 순서가 없고 중복을 허용하지 않는 데이터 구조로, 중괄호 {}를 사용하여 정의된다. Set은 수학적인 집합 개념과 유사하며, 고유한 원소로 구성된다.

🔎 용도

1. 중복 제거

  • Set은 중복된 값을 허용하지 않으므로, 중복된 항목을 제거하고 고유한 값을 유지하고자 할 때 유용하다.
my_list = [1, 2, 2, 3, 4, 4, 5]
my_set = set(my_list)  # 중복 제거
print(my_set)  # 출력: {1, 2, 3, 4, 5}

2. 멤버십 검사

  • Set은 매우 빠르게 특정 항목이 집합에 속하는지 검사할 수 있다.
my_set = {1, 2, 3, 4, 5}
print(3 in my_set)  # 출력: True
print(6 in my_set)  # 출력: False

3. 집합 연산

  • Set은 합집합, 교집합, 차집합 등과 같은 집합 연산을 수행할 수 있다.
set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}
union_set = set1 | set2  # 합집합
intersection_set = set1 & set2  # 교집합
difference_set = set1 - set2  # 차집합
print(union_set)        # 출력: {1, 2, 3, 4, 5, 6, 7}
print(intersection_set)  # 출력: {3, 4, 5}
print(difference_set)    # 출력: {1, 2}

4. 수정 불가능성

  • Set은 수정 불가능하므로, 원소를 추가, 삭제하거나 변경할 수 없다. 이러한 특성은 일부 상황에서 유용할 수 있다.
my_set = {1, 2, 3}
my_set.add(4)  # 원소 추가
my_set.remove(2)  # 원소 제거
print(my_set)  # 출력: {1, 3, 4}

5. Set 컴프리헨션

  • Set 컴프리헨션을 사용하여 반복문을 통해 새로운 Set을 생성할 수 있다.
squared_numbers = {x**2 for x in range(1, 6)}
print(squared_numbers)  # 출력: {1, 4, 9, 16, 25}

Set은 많은 유용한 용도와 메서드를 제공하며, 데이터를 고유하게 유지하고 집합 연산을 수행할 때 매우 효과적이다.

0개의 댓글