[Python]리스트와 딕셔너리

Python은 강력하고 유연한 데이터 구조를 제공하는 프로그래밍 언어입니다. 그 중에서도 리스트와 딕셔너리는 가장 자주 사용되는 기본 데이터 구조입니다. 이 글에서는 Python 리스트와 딕셔너리의 정의, 주요 기능, 그리고 활용 방법에 대해 자세히 살펴보겠습니다.

1. 리스트 (List)

리스트는 순서가 있는 변경 가능한 데이터 구조로, 다양한 타입의 데이터를 저장할 수 있습니다. 리스트는 대괄호 []로 정의하고, 요소는 쉼표 ,로 구분합니다.

fruits = ["apple", "banana", "cherry"]

1.1 리스트의 주요 기능

  • 요소 접근: 리스트의 요소는 인덱스를 사용하여 접근할 수 있습니다. 인덱스는 0부터 시작합니다.
    print(fruits[0]) # apple print(fruits[1]) # banana print(fruits[2]) # cherry
  • 요소 추가: append() 메서드를 사용하여 리스트의 끝에 요소를 추가할 수 있습니다.
    fruits.append("orange") print(fruits) # ["apple", "banana", "cherry", "orange"]
  • 요소 삽입: insert() 메서드를 사용하여 특정 위치에 요소를 삽입할 수 있습니다.
    fruits.insert(1, "blueberry") print(fruits) # ["apple", "blueberry", "banana", "cherry", "orange"]
  • 요소 제거: remove() 메서드를 사용하여 특정 요소를 제거할 수 있습니다.
    fruits.remove("banana") print(fruits) # ["apple", "blueberry", "cherry", "orange"]
  • 요소 삭제: del 키워드를 사용하여 특정 인덱스의 요소를 삭제할 수 있습니다.
    del fruits[0] print(fruits) # ["blueberry", "cherry", "orange"]
  • 리스트 슬라이싱: 리스트의 부분집합을 추출할 수 있습니다.
    print(fruits[1:3]) # ["cherry", "orange"]
  • 리스트 길이: len() 함수를 사용하여 리스트의 길이를 구할 수 있습니다.
    print(len(fruits)) # 3

1.2 리스트의 반복문 활용

리스트의 요소를 반복문을 사용하여 처리할 수 있습니다.

for fruit in fruits:
print(fruit)

이 코드는 리스트의 모든 요소를 하나씩 출력합니다.

1.3 리스트의 컴프리헨션

리스트 컴프리헨션은 간결하고 직관적으로 새로운 리스트를 생성할 수 있는 방법입니다.

numbers = [1, 2, 3, 4, 5]
squared_numbers = [x**2 for x in numbers]
print(squared_numbers) # [1, 4, 9, 16, 25]

2. 딕셔너리 (Dictionary)

딕셔너리는 키-값(key-value) 쌍으로 데이터를 저장하는 구조로, 순서가 없고 변경 가능한 데이터 구조입니다. 딕셔너리는 중괄호 {}로 정의하고, 콜론 :을 사용하여 키와 값을 구분합니다.

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

2.1 딕셔너리의 주요 기능

  • 값 접근: 딕셔너리의 값은 키를 사용하여 접근할 수 있습니다.
    print(person["name"]) # Alice print(person["age"]) # 25
  • 값 추가 및 변경: 딕셔너리에 새로운 키-값 쌍을 추가하거나 기존 값을 변경할 수 있습니다.
    person["email"] = "alice@example.com" person["age"] = 26 print(person) # {"name": "Alice", "age": 26, "city": "New York", "email": "alice@example.com"}
  • 값 삭제: del 키워드를 사용하여 특정 키-값 쌍을 삭제할 수 있습니다.
    del person["city"] print(person) # {"name": "Alice", "age": 26, "email": "alice@example.com"}
  • 키 목록: keys() 메서드를 사용하여 딕셔너리의 모든 키를 얻을 수 있습니다.
    print(person.keys()) # dict_keys(["name", "age", "email"])
  • 값 목록: values() 메서드를 사용하여 딕셔너리의 모든 값을 얻을 수 있습니다.
    print(person.values()) # dict_values(["Alice", 26, "alice@example.com"])
  • 키-값 쌍 목록: items() 메서드를 사용하여 딕셔너리의 모든 키-값 쌍을 얻을 수 있습니다.
    print(person.items()) # dict_items([("name", "Alice"), ("age", 26), ("email", "alice@example.com")])

2.2 딕셔너리의 반복문 활용

딕셔너리의 키와 값을 반복문을 사용하여 처리할 수 있습니다.

for key, value in person.items():
print(f"{key}: {value}")

이 코드는 딕셔너리의 모든 키-값 쌍을 하나씩 출력합니다.

3. 리스트와 딕셔너리의 응용

리스트와 딕셔너리를 조합하여 복잡한 데이터 구조를 만들 수 있습니다. 예를 들어, 여러 사람의 정보를 저장하는 리스트를 만들 수 있습니다.

people = [
{"name": "Alice", "age": 25, "city": "New York"},
{"name": "Bob", "age": 30, "city": "San Francisco"},
{"name": "Charlie", "age": 35, "city": "Chicago"}
]

for person in people:
print(f"{person['name']}님은 {person['age']}살이고, {person['city']}에 거주합니다.")

이 코드는 리스트 안에 여러 딕셔너리를 포함하여, 각 사람의 정보를 저장하고 출력합니다.

4. 실용적인 예제

리스트와 딕셔너리를 사용하여 학생들의 성적을 관리하는 프로그램을 만들어 보겠습니다.

students = [
{"name": "Alice", "scores": {"math": 90, "english": 85}},
{"name": "Bob", "scores": {"math": 75, "english": 80}},
{"name": "Charlie", "scores": {"math": 60, "english": 70}}
]

def get_average_score(scores):
total = sum(scores.values())
count = len(scores)
return total / count

for student in students:
average_score = get_average_score(student["scores"])
print(f"{student['name']}님의 평균 점수는 {average_score:.2f}입니다.")

이 코드는 각 학생의 과목별 점수를 딕셔너리로 저장하고, 리스트에 학생들을 추가합니다. get_average_score 함수는 점수 딕셔너리를 받아 평균 점수를 계산합니다. 프로그램은 각 학생의 평균 점수를 출력합니다.

결론

Python 리스트와 딕셔너리는 데이터를 효율적으로 저장하고 관리할 수 있는 강력한 도구입니다. 리스트는 순서가 있는 데이터 구조로 다양한 타입의 데이터를 저장할 수 있으며, 딕셔너리는 키-값 쌍으로 데이터를 저장하여 효율적인 데이터 조회와 관리를 가능하게 합니다. 리스트와 딕셔너리를 잘 활용하면 복잡한 데이터 구조를 손쉽게 처리할 수 있습니다. 이번 글을 통해 리스트와 딕셔너리의 기본 개념과 활용법을 이해하고, 다양한 프로젝트에 적용해보세요. Python의 유연성과 강력한 기능을 통해 더 효율적이고 가독성 높은 코드를 작성할 수 있을 것입니다.

이 게시물이 얼마나 유용했습니까?

평가하려면 별표를 클릭하세요.

평균 평점 0 / 5. 투표 수: 0

지금까지 투표 한 사람이 없습니다. 가장 먼저 게시물을 평가해 보세요.

Leave a Comment

error: 우클릭 할 수 없습니다.