◎ Python/파이썬 심화 (책)

[파이썬 심화] 7. 할당 및 기타 문장 처리하기

reo91004 2022. 8. 29. 22:06
반응형

변수에 값을 할당(assignment)하다

파이썬은 변수를 정의하면 이름공간에 변수의 이름을 Key로 만들고 객체를 값으로 저장한다. 이름공간이 딕셔너리이기 때문! 이러한 할당문은 모듈, 함수, 클래스 등 다양한 곳에 정의할 수 있다.

여러 값을 여러 변수에 할당하려면 원소의 개수가 같아야 한다. 개수가 같지 않다면 예외가 발생한다!

x, y, z = 1, 2, 3
x, y, z = [1, 2, 3]
x, y, z = (1, 2, 3)


물론 변수와 원소의 개수가 같지 않아도 패킹을 이용해 남는 원소를 리스트로 묶어버릴 수 있다.

x, *y = 1, 2, 3
x, y

[결과]
(1, [2, 3])

사용하지 않는 변수는 어떻게 처리할까?

보통 파이썬에서는 관용적으로 사용하지 않는 변수를 _로 처리한다. 이는 for문에서 자주 볼 수 있다.

for _ in range(3):
    print("Hello World!")
    
[결과]
Hello World!
Hello World!
Hello World!

map 클래스는 어느 상황에서 사용할까?

map() 함수는 built-in 함수로 list 나 dictionary 와 같은 iterable (반복 가능한)한 데이터를 인자로 받아 list 안의 개별 item을 함수의 인자로 전달하여 결과를 list로 형태로 반환해 주는 함수다.

다시 설명하자면 첫 번째 인자에 함수, 두 번째 인자에 반복 가능한(iterable) 자료형을 입력한다. 결괏값은 map 타입으로 지정되기 때문에 list로 변형해서 사용해야 한다.

간단한 예제들을 보자.

import math

m = map(math.sqrt, [1, 2, 3, 4])
print(m)

[결과]
<map object at 0x0000026A63559810>

결과가 그냥 map 클래스로 나오는 것을 알 수 있다. 이를 뜯어서 보려면 언패킹하거나 for문을 사용할 수 있다.

# 방법 1
for i in m:
    print(i)
    
[결과]
1.0
1.4142135623730951
1.7320508075688772
2.0
# 방법 2
[*m]

[결과]
[1.0, 1.4142135623730951, 1.7320508075688772, 2.0]

방법 2인 [*m]은 m을 언패킹해 모든 요소를 나열한 후 리스트로 묶어준다는 뜻이다.

참고

  • 한권으로 개발자가 원하던 파이썬 심화 A to Z, 문용준/문성혁 저

반응형