>백엔드 개발 >파이썬 튜토리얼 >Python 사전이 코드를 깔끔하고 건조하게 유지하는 방법

Python 사전이 코드를 깔끔하고 건조하게 유지하는 방법

Patricia Arquette
Patricia Arquette원래의
2024-10-02 14:10:02795검색

How Python Dictionaries Keep Your Code Clean and DRY

Python 사전과 DRY 원리: 초보자를 위한 빠른 가이드

안녕하세요! ? Python 프로그래밍에 뛰어들고 있다면 아마도 사전을 우연히 발견하고 "Python에서 사전이란 정확히 무엇이며, 이를 통해 코딩을 더 똑똑하게 하는 데 어떻게 도움이 될까요?"라고 궁금해했을 것입니다. 걱정하지 마세요. 매우 간단한 방법으로 분석해 보겠습니다.

파이썬에서 사전이란 무엇인가요?

항목 목록이 있고 각 항목에 '이름: John' 또는 '나이: 25'와 같은 고유한 라벨이 붙어 있다고 가정해 보세요. Python의 사전은 정확히 그렇게 작동합니다! 이는 각 키가 고유하고 특정 값을 가리키는 키 값 쌍의 모음입니다. 정보를 깔끔하고 체계적으로 저장하는 미니 데이터베이스라고 생각하시면 됩니다.

단어(키)를 찾아 그 의미(값)를 알아내는 실제 사전과 같습니다. 멋지죠? ?

파이썬에서 사전을 만드는 방법은 무엇인가요?

사전을 만드는 것은 파이처럼 쉽습니다. 중괄호 {}를 사용하고 각 키 값 쌍을 콜론으로 구분합니다.

간단한 사전을 만드는 방법은 다음과 같습니다.

# Creating a dictionary to store student information
student_info = {
    'name': 'John Doe',
    'age': 21,
    'major': 'Computer Science'
}

# Printing out the dictionary
print(student_info)

이 사전에는 학생의 이름, 나이, 전공이 저장되어 있습니다. 'name' 및 'age'와 같은 키가 어떻게 따옴표로 묶여 있는지 확인하세요. 키는 문자열, 숫자, 심지어 튜플일 수도 있기 때문입니다! 값은 문자열, 목록, 기타 사전 등 무엇이든 될 수 있습니다.

사전이 반복을 피하는 데 어떻게 도움이 됩니까(DRY 원칙)

이제 흥미로운 부분이 있습니다. Don't Repeat Yourself의 약자인 DRY 원칙을 들어보셨을 겁니다. 이는 코드의 중복을 피하도록 권장하는 규칙입니다. 사전이 어떻게 도움이 될 수 있나요? 살펴보겠습니다.

사전을 사용하기 전(반복코드)

학생에 대한 정보를 별도의 변수에 저장하고 싶다고 상상해 보세요. 다음과 같이 보일 수 있습니다.

student1_name = 'Alice'
student1_age = 20
student1_major = 'Mathematics'

student2_name = 'Bob'
student2_age = 22
student2_major = 'Physics'

반복적인 변수 이름이 있을 뿐만 아니라 이를 인쇄하거나 업데이트하려면 계속해서 반복해야 합니다. 이것은 사전이 하루를 절약할 수 있는 곳입니다! ?

예시 1: 사전(DRY 버전) 사용 후

사전을 사용하면 이 모든 정보를 더 깔끔한 방법으로 저장할 수 있습니다.

# Using dictionaries to store student data
students = {
    'student1': {'name': 'Alice', 'age': 20, 'major': 'Mathematics'},
    'student2': {'name': 'Bob', 'age': 22, 'major': 'Physics'}
}

print(students['student1']['name'])  # Output: Alice
print(students['student2']['age'])   # Output: 22

이제 학생 이름, 나이, 전공별로 별도의 변수를 만들 필요가 없습니다. 훨씬 간단한 방법으로 정보에 액세스하거나 업데이트할 수 있습니다. 또한 코드가 더 깔끔하고 관리하기 쉬워집니다.

예 2: 사전을 사용한 반복 방지

학생 점수를 기준으로 간단한 채점 시스템을 만들고 싶다고 가정해 보겠습니다. 사전이 없으면 다음과 같은 내용을 작성하게 될 수도 있습니다.

# Without dictionary (repeating code)
alice_score = 90
bob_score = 75
charlie_score = 85

if alice_score >= 85:
    print("Alice gets an A")
if bob_score >= 85:
    print("Bob gets an A")
if charlie_score >= 85:
    print("Charlie gets an A")

여기서 if 문을 반복하고 각 학생의 이름과 점수를 하드코딩하고 있는데 이는 DRY 원칙을 위반하는 것입니다.

대신 사전을 사용하면 다음과 같이 반복을 피할 수 있습니다.

# Using a dictionary (DRY principle)
student_scores = {'Alice': 90, 'Bob': 75, 'Charlie': 85}

for student, score in student_scores.items():
    if score >= 85:
        print(f"{student} gets an A")

이제 더 깔끔하고, 더 짧고, 유지 관리하기 쉬운 코드가 생겼습니다! if 문을 한 번만 작성하면 사전에 있는 모든 학생에게 적용됩니다. ?

유용한 사전 방법

사전에는 쉽게 사용할 수 있는 다양한 메서드가 내장되어 있습니다. 그 중 몇 가지를 살펴보겠습니다.

  1. .get(): 키가 존재하지 않는 경우 오류를 방지하는 데 도움이 됩니다.
   print(student_info.get('address', 'Address not available'))  
   # Output: Address not available
  1. .keys() 및 .values(): 사전의 모든 키 또는 값을 가져옵니다.
   print(student_info.keys())  # Output: dict_keys(['name', 'age', 'major'])
   print(student_info.values())  # Output: dict_values(['John Doe', 21, 'Computer Science'])
  1. .items(): 키와 값을 쌍으로 가져옵니다.
   for key, value in student_info.items():
       print(f'{key}: {value}')
   # Output: 
   # name: John Doe
   # age: 21
   # major: Computer Science
  1. .update(): 다른 사전이나 키-값 쌍으로 사전을 업데이트합니다.
   student_info.update({'grade': 'A'})
   print(student_info)  
   # Output: {'name': 'John Doe', 'age': 21, 'major': 'Computer Science', 'grade': 'A'}
  1. .setdefault(): 키가 존재하지 않는 경우 기본값을 사용하여 키를 추가합니다.
   student_info.setdefault('graduation_year', 2024)
   print(student_info)  
   # Output: {'name': 'John Doe', 'age': 21, 'major': 'Computer Science', 'grade': 'A', 'graduation_year': 2024}

마무리

사전은 매우 강력하며 코드에서 DRY 원칙을 따르는 데 실제로 도움이 될 수 있습니다. 사전을 사용하면 반복을 방지하고, 코드를 체계적으로 정리하고, 읽고 유지 관리하기 쉽게 만들 수 있습니다.

그러므로 다음에 비슷한 변수를 여러 개 만들면 대신 사전을 사용해 보세요. 그러면 여러분의 시간과 노력이 엄청나게 절약될 것이고, 미래의 여러분도 여러분에게 감사할 것입니다! ?

즐거운 코딩하세요! ?

위 내용은 Python 사전이 코드를 깔끔하고 건조하게 유지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.