Python 사전 이해 자습서

Python 사전 이해 자습서

Python 프로그래밍 언어는 코딩을 재미있을 뿐만 아니라 프로그래머로서의 발전을 가속화하는 고유한 도구 세트를 제공합니다. 사용하기 쉽기 때문에 Python은 웹 개발 및 데이터 과학에서 금융 및 그 이상에 이르기까지 다양한 산업에서 사용하는 언어가 되었습니다.

Python 사전 이해 자습서

Python 사전 이해는 기존의 반복 가능한 데이터 구조 또는 사전을 반복하여 새 사전을 생성하여 동적으로 사전을 생성할 수 있게 해주는 중요한 도구입니다. 사전 이해는 목록 이해와 비슷하지만 사용 사례가 약간 다르다고 생각할 수 있습니다.

Comprehension에 익숙해지면 명확성을 촉진하고 길고 반복적인 루프의 필요성을 제거하여 코드를 크게 향상시킬 수 있음을 알게 될 것입니다.

Python 을 처음 사용하는 경우 이해력을 경험하지 못했거나 코드에서 사용하지 않았을 수 있습니다. 구문으로 들어가기 전에 주요 질문을 해결해 보겠습니다. Python 사전 이해란 무엇입니까?

목차

파이썬 사전 이해란 무엇입니까?

Python Dictionary Comprehension은 간단한 표현을 사용하여 사전을 만드는 간결한 방법입니다. for-loops.e를 사용할 필요 없이 새 사전을 생성할 수 있습니다.

이해의 예를 살펴보자. 하나는 키를 포함하고 다른 하나는 값을 포함하는 두 개의 목록이 있다고 가정합니다.

keys = ['a', 'b', 'c']
values = [1, 2, 3]

사전 이해를 사용하면 두 목록을 반복하고 해당 키-값 쌍을 결합하여 새 사전을 만들 수 있습니다.

my_dict = {k: v for k, v in zip(keys, values)}
print(my_dict)

출력은 다음과 같습니다.

{'a': 1, 'b': 2, 'c': 3}

Python 사전 이해 자습서

위의 예는 파이썬 에 어떤 컴프리헨션이 있는지에 대한 아이디어를 제공해야 합니다 . 개념을 확고히 하는 데 도움이 되도록 Python의 사전 이해 구문을 이해해 봅시다.

사전 이해의 구문 이해

사전 이해를 위한 구문은 간단하지만 강력합니다. Python에서 새 사전을 만드는 간결한 방법을 제공합니다 . 또한 목록 이해와 유사한 구문을 따르지만 중괄호 {}와 콜론으로 구분된 키-값 쌍을 사용합니다.

기본 구조는 다음과 같습니다.

{key: value for (key, value) in iterable}

이 구문에서 키와 값은 결과 사전의 키와 값을 생성하는 데 사용되는 표현식을 나타냅니다. iterable은 키-값 쌍을 만드는 데 사용되는 데이터 소스를 제공합니다.

이 구문은 Python 3에서 도입되었으며 Python 2.7까지 백포트되어 Python 버전 간에 광범위한 호환성을 보장합니다.

예를 들어 사전 이해를 사용하여 0에서 4까지의 숫자를 해당 제곱에 매핑하는 사전을 만들려면 다음 Python 코드를 사용할 수 있습니다.

square_dict = {x: x**2 for x in range(5)}

그러면 다음 사전이 생성됩니다.

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

Python 사전 이해 자습서

두 변수를 동시에 반복하려면 어떻게 해야 합니까? 하나는 키를 나타내고 다른 하나는 값을 나타내는 두 개의 이터러블에서 사전을 생성하는 zip() 함수로 사전 이해를 사용하여 이를 달성할 수 있습니다. 예를 들면 다음과 같습니다.

keys = ['a', 'b', 'c', 'd', 'e']
values = [1, 2, 3, 4, 5]
my_dict = {k: v for k, v in zip(keys, values)}

결과 사전은 다음과 같습니다.

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

Python 사전 이해 자습서

사전 이해를 사용하면 포함된 항목에 조건부 필터를 적용하기 위해 이해 끝에 선택적 if 문을 추가할 수도 있습니다.

예를 들어 사전 이해를 사용하여 짝수와 제곱만으로 사전을 만들 수 있습니다.

even_square_dict = {x: x**2 for x in range(10) if x % 2 == 0}

결과는 다음과 같습니다.

{0: 0, 2: 4, 4: 16, 6: 36, 8: 64}

Python 사전 이해 자습서

이제 이해의 구문에 어느 정도 익숙해졌으므로 이해의 몇 가지 예를 살펴보겠습니다.

사전 이해의 예

사전 이해는 강력하고 우아한 구문으로 인해 다양한 사용 사례를 찾습니다. 시간을 절약하고 코드를 더 읽기 쉽게 만들 수 있습니다.

숫자를 제곱에 매핑

Python 사전 이해를 사용하여 숫자를 사각형에 매핑하는 사전을 생성하려는 간단한 예를 고려하십시오.

squares = {x: x**2 for x in range(1, 6)}
print(squares)

그러면 다음이 출력됩니다.

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

The above code does the same job as running a loop six times and squaring each number. The code below demonstrates running a loop to take the squares of numbers:

squares = {}
for x in range(1, 6):
    squares[x] = x ** 2

print(squares)

At this point, you might be wondering why to use comprehension when you can use loops. In programming, a rule of thumb is to write compact and efficient code.

You can also apply conditions to your comprehension. For instance, you may want to create a dictionary that contains only even numbers and their squares:

even_squares = {x: x**2 for x in range(1, 6) if x % 2 == 0}
print(even_squares)

Running this code will produce a new dictionary like the following:

{2: 4, 4: 16}

Reverse Keys and Values

You can also reverse dictionary elements with ease with dictionary comprehension in Python.

The following code demonstrates how to reverse keys and values of an existing dictionary using dictionary comprehension:

original_dict = {"one": 1, "two": 2, "three": 3, "four": 4}
reversed_dict = {v: k for k, v in original_dict.items()}
print(reversed_dict)

The above dictionary comprehension(or dict comprehension) will print the following:

{1: 'one', 2: 'two', 3: 'three', 4: 'four'}

Python 사전 이해 자습서

To get a good understanding of what dictionaries are and how you can use them for different cases, please refer to the video given below:

The examples provided serve as a solid foundation for employing dictionary comprehension in your Python projects.

Also, dictionary comprehension can be further optimized, allowing a single line of code to accomplish complex tasks that might consume more time and memory with loops.

3 Major Advantages of Dictionary Comprehension

You’ve experienced the elegance of dictionary comprehension through the examples provided. Apart from readability, comprehensions offer several advantages, including efficiency, when working with Python’s efficient key/value hash table structure, called dict comprehension.

1. Creating Clear and Simple Code

Comprehensions allow you to create new dictionaries effortlessly and in a readable manner. They make your code look and feel more Pythonic compared to traditional loops.

2. Better Performance with Style

Comprehensions are not only elegant but also efficient. They often work faster than for loops since they use a single expression. Python optimizes this kind of code, eliminating the need for repeatedly calling the dictionary constructor or using the update() method.

3. Easy Filtering and Data Transformation

Another advantage of dictionary comprehension is its simplicity in filtering and transforming data. For instance, you can create a new dictionary from an existing one by applying a condition or modifying the keys or values.

Python에서 사전 이해를 언제 사용해야 하는지 이해하는 것이 중요합니다. 빠르게 복잡해지고 읽고 쓰기가 어려워질 수 있기 때문입니다. 이제 Python에서 사전 이해에 대한 몇 가지 사용 사례를 살펴보겠습니다.

사전 이해를 사용하는 경우의 3가지 예

이해력은 다음 3가지 시나리오에서 유용합니다.

1. 두 개의 목록에서 사전을 만드는 경우

{key:value for key, value in zip(list1, list2)}

2. 값을 기준으로 사전을 필터링하는 경우

{k: v for k, v in original_dict.items() if v > threshold}

3. 키나 값을 변환할 때

{k.upper(): v * 2 for k, v in original_dict.items()}

Comprehension은 코드를 더 우아하고 효율적으로 만들 수 있지만 지나치게 복잡하면 읽기 어려워질 수도 있다는 점을 기억하는 것이 중요합니다.

사전 이해를 사용할 때 가장 일반적인 함정 중 일부를 살펴보겠습니다.

사전 이해의 함정

사전 이해는 우아함과 효율성을 제공하지만 어려움도 따릅니다. 대규모 데이터 세트의 가독성, 복잡성 및 성능과 관련된 일반적인 함정에 대해 논의합니다.

복잡성과 가독성의 균형

복잡한 사전 이해는 읽기 어려울 수 있습니다. 특히 다른 사람과 함께 작업할 때 코드 가독성을 우선시하십시오. 어떤 경우에는 기존의 for 루프가 더 간단하고 유지 관리가 더 쉬울 수 있습니다.

대용량 데이터 세트의 성능

대규모 데이터 세트의 경우 사전 이해가 항상 최적인 것은 아닙니다. Stack Overflow 에 따르면 내장 dict() 생성자는 C의 루프로 인해 수많은 키-값 쌍이 있는 사전 이해를 능가할 수 있습니다.

다른 방법과의 비교

이 섹션에서는 Python에서 사전을 만드는 두 가지 대체 방법인 for 루프 및 람다 함수와 사전 내포를 비교합니다.

For 루프

for 루프를 사용하여 사전을 생성하려면 빈 사전을 초기화한 다음 원하는 유효한 키 값 쌍을 반복하여 각 쌍을 사전에 추가해야 합니다. 이것은 사전 이해에 비해 더 장황한 방법입니다.

다음은 for 루프를 사용하여 사전을 만드는 예입니다.

dictionary = {}
for key, value in zip(keys, values):
    dictionary[key] = value

반대로 사전 이해를 사용하면 한 줄에서 동일한 결과를 얻을 수 있습니다.

dictionary = {key: value for key, value in zip(keys, values)}

Python 사전 이해 자습서

보시다시피 컴프리헨션은 파이썬에서 사전을 만드는 간결하고 읽기 쉬운 방법을 제공합니다.

람다 함수

Lambda 함수를 사용하여 사전을 만들 수도 있습니다. Lambda 함수는 Python에서 작은 익명 함수를 만드는 방법입니다. map() 함수와 함께 사용하여 사전을 만들 수 있습니다.

사전을 생성하는 Lambda 함수의 예를 살펴보겠습니다.

keys = ['a', 'b', 'c']
values = [1, 2, 3]

key_value_pairs = map(lambda key, value: (key, value), keys, values)
dictionary = dict(key_value_pairs)

비교해 보면 이해력을 사용하여 동일한 사전을 만드는 방법은 다음과 같습니다.

dictionary = {key: value for key, value in zip(keys, values)}

Python 사전 이해 자습서

다시 말하지만 사전 이해는 람다 함수와 map() 함수를 사용하여 사전을 만드는 것보다 간결하고 읽기 쉬운 대안을 제공합니다.

사전 이해를 위한 모범 사례

Python에서 컴프리헨션을 사용할 때 가독성, 유지 관리성 및 효율성을 개선하기 위해 모범 사례를 따르는 것이 필수적입니다. 다음은 고려해야 할 몇 가지 모범 사례입니다.

1. 사전 이해를 단순하게 유지

사전 이해력은 강력하지만 명확하고 간결해야 합니다. 이해가 너무 복잡해지거나 여러 줄에 걸쳐 있는 경우 기존 for 루프를 대신 사용하는 것이 좋습니다. 이것은 특히 다른 사람이나 나중에 작업을 다시 방문할 때 코드 이해를 돕습니다.

2. 내장 기능 활용

파이썬은 이해력을 만드는 데 도움이 되는 zip() 및 enumerate()와 같은 내장 함수를 제공합니다. 이러한 기능을 사용하여 코드를 간소화하고 더 읽기 쉽게 만드십시오.

예를 들어 zip()을 사용하여 두 목록을 결합하고 사전을 만들면 다음과 같이 간결하고 깨끗한 코드가 생성됩니다.

{key: value for key, value in zip(keys, values)}

3. 조건문을 현명하게 사용

필요한 경우 이해력에 조건문을 통합하되 과도하게 사용하지 마십시오. 결과 사전을 필터링하거나 수정하는 데 도움이 될 수 있지만 중첩된 조건이 너무 많으면 코드를 읽기 어려울 수 있습니다. 조건문과 관련된 간단한 예는 다음과 같습니다.

{x: x**2 for x in range(10) if x % 2 == 0}

4. 중첩된 사전 이해에 유의하십시오.

중첩된 사전 이해는 중첩된 구조로 사전을 생성할 수 있습니다. 그러나 조건문과 마찬가지로 중첩된 사전이 너무 많으면 코드를 해독하기가 더 어려워질 수 있습니다. 중첩된 사전 이해에서 중첩의 두 수준을 초과하지 마십시오.

때로는 원하는 효율성을 달성하기 위해 루프 내부에 중첩된 사전 이해를 사용해야 할 수도 있습니다.

우리의 마지막 말

지금까지 Python에서 사전 이해를 마스터했습니다. 이 우아하고 효율적인 기술은 반복 가능 항목을 반복하거나 조건을 사용하여 사전을 만드는 데 도움이 됩니다. Comprehension은 코드를 간소화하여 가독성과 유지 관리성을 높입니다.

기존 for-loops에 비해 이해력이 뛰어나고 시간과 노력이 절약되므로 새 사전을 쉽게 만들 수 있습니다. 데이터 처리, 매핑 및 변환과 같은 실제 응용 프로그램에 유용합니다.

Python 지식을 넓히고 진정한 전문가가 되려면 Python 과정에 하고 우리가 어떻게 세계 최고의 Python 사용자를 만들고 있는지 확인하십시오.


파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

R에서 RDS 파일을 저장하고 로드하는 방법

R에서 RDS 파일을 저장하고 로드하는 방법

R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.

LuckyTemplates의 컨텍스트 필터링 소개

LuckyTemplates의 컨텍스트 필터링 소개

이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.

LuckyTemplates를 사용한 비즈니스 보고

LuckyTemplates를 사용한 비즈니스 보고

지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것