본문 바로가기

Language/Python

(3)
자료형의 복사 .copy() 와 .deepcopy() a = 3 b = a b = b + 1 print(b)# 4 print(a)# 3 위 코드를 보면, 특별히 문제가 없어 보인다. 그런데, a = [1, 2, 3, 4] b = a b[2] = 0 print(b)# [1, 2, 0, 4] print(a)# [1, 2, 0, 4] a를 리스트로 선언하면 b의 세 번째 값을 변경했을 때 a도 같이 변경된다. 앞의 예시처럼 a 따로, b 따로 변동된 사항이 적용되는 것이 아닌 것이다. list, dictionary, set 등 mutable 한 속성을 가진 것들은 이처럼 처음에 같은 데이터를 가리키고 있었다면 하나를 변경했을 때 다른 것도 같이 변한다는 특징을 가진다. 이러한 현상을 방지하고 싶다면, 자료형의 복사를 해야 한다. a = [1, 2, 3, 4, 5..
문자열 포매팅 파이썬에서는 문자열 포매팅을 사용한다. A = "현재 시간은 {}시 입니다.".format(7) 이렇게 할 수도 있고, B = "현재 시간은 %d시 입니다." % 8 이렇게 할 수도 있다. 전자가 현업에서 더 많이 쓰인다고 한다. 두 번째 방법을 사용하려면, %d : 정수 %s : 문자열 %f : 실수 %o : 8진수 %x : 16진수 를 참고하고 넣으려는 값의 자료형에 맞게 입력해야 한다. 두 개 이상의 값을 문자열 포매팅 하려면, C = "현재 시간은 {}시 {}분 입니다.".format(7, 24) 의 방식으로 하면 된다. 괄호 안에 들어가는 값을 구체적으로 명시하고 싶다면, D = "현재 시간은 {time}시 {minute}분 입니다.".format(time = 7, minute = 24) 로 하..
람다(lambda) - Python lambda는 함수를 생성할 때 사용하는 예약어로 def와 동일한 역할을 한다. 보통 함수를 한 줄로 간결하게 만들 때 사용한다. def를 사용해야 할 정도로 복잡하지 않거나 def를 사용할 수 없는 곳에 주로 쓰인다. 사용법은 다음과 같다. lambda 매개변수1, 매개변수2, ... : 매개변수를 사용한 표현식 한 번 직접 만들어 보자. add = lambda a, b: a + b result = add(3, 4) print(result) add는 두 개의 인수를 받아 서로 더한 값을 돌려주는 lambda 함수이다. lambda 예약어로 만든 함수는 return 명령어가 없어도 결괏값을 돌려준다. 위 예제는 def를 사용한 다음 함수와 하는 일이 완전 동일하다. def add(a, b): return..