Map함수란?

 연속적인 자료형(배열, 튜플, 문자열 등등)의 각 원소에 동일한 함수를 적용한 결과값을 list로 반환함.

 

그 예시는 아래의 코드와 같다.

new_sequence_data = map(function_name, sequence_data)

 해당 코드를 실행하면 new_sequence_data에 sequence_data의 각 원소를 function_name에 해당하는 함수의 매개변수로 전달하고, 나온 결과값을 list형태로 반환한다.

 

 이 코드를 map함수 없이 사용하면 아래와 같은 코드가 필요하다.

new_sequence_data = []
for element in sequence_data:
	new_sequence_data.append(function_name(element))

 딱봐도 map함수를 쓰는편이 효과적이고, 보기쉽고, 이해하기편하고 좋다.

'Python' 카테고리의 다른 글

[Python] 문자열 포메팅 방법  (0) 2021.02.06

포메팅이란?

name1 = 'inhyeok'
name2 = 'songho'

print('Hi! my name is %s and this is my firend %s'%(name1, name2))
# Hi! my name is inhyeok and this is my firend songho

문자열을 더 자유롭게 수정할 수 있도록 하는 기술입니다. 문자열속에 특정한 값을 끼워넣을 수도 있고, 간격을 설정할 수도 있으며, 문자열속에 들어갈 값의 자료형을 제한할 수도 있습니다.

 

 

Python의 포메팅 방법

Python에서 문자열을 포메팅 하는 방법은 3가지가 있습니다.

1. %-formatting

2. '{}'.format()

3. f'{}'

1번 방식이 가장 오래된 방식이고, 3번이 가장 최근에 나온 방식입니다.

 

 

1. %-formatting

사실 c언어를 처음으로 배웠던 사람으로서 %-formatting이 가장 익숙합니다. 하지만 더 발전된 포메팅 방법을 확인하게 되면서, %-formatting방법은 잘 사용하지 않게 되었습니다.

 

%-formatting방법은 아래와 같이 사용됩니다.

name = 'inhyeok'
age = 24
print("hi! my name is %s and i'm %d years old"%(name, age))
#출력값 : hi! my name is inhyeok and i'm 24 years old

 

 

 

%표시(나누기표시)와 그 뒤에오는 변수의 형식 지정자(정수 : d, 문자열 : s, 16진수 정수 : X 등등)가 합쳐져서 

%d, %s, %X

와 같은 형태로 문자열속에 들어있습니다.

그리고 문자열 뒤에 %(변수1, 변수2)와 같은 형태로 문자열 속의 %d 값을 순서대로 포멧하는 것입니다.

"%d %d %s"%(3,5,'money')

이렇게 포멧이 완료되면 위의 문자열은

"3 5 money"라는 문자열과 같은 뜻을 가지게 됩니다..

 

그리고 물론 문자열 서식지정자를 사용해서 문자열을 꾸밀수도 있습니다.

int_ex = 52
float_ex = 0.123

#특정 칸에 출력하기
print("%5d"%(int_ex))  #출력값->   52

#빈칸을 0으로 채우기
print("%05d"%(int_ex)) #출력값->00052

#부호 붙이기
print("%+d"%(int_ex)) #출력값->+52

#부호 앞으로 밀기
print("%=+5d"%(int_ex)) #출력값->+0052

#소수점 이후 지정하기
print("%.5f"%(float_ex)) #출력값->0.12300
print("%.1f"%(float_ex)) #출력값->0.1

 

문자열 서식지정자는 언급한 것 이외에도 더 있으나 format에 대해서 설명하는 글이기에, 이정도로 마무리 하겠습니다.

 

2. "{}".format

"{}".format방식은 아래와 같이 사용합니다.

name = 'inhyeok'
age = 24
print("hi! my name is {} and i'm {} years old".format(name, age))
#출력값 : hi! my name is inhyeok and i'm 24 years old

 

이는 %-formatting방식과는 약간의 차이가 있는데, 그건 바로 순서를 지정해줄 수 있다는 점과, 이름을 지정해 줄 수 있다는 점입니다. 잘 이해가 안가신다고요? 아래의 예시를 보시면 됩니다.

#순서를 지정해 줄 수 있다(튜플이기 때문에 index로 접근이 가능한 것이다.)
print("{2}-{1}-{0}".format(21,31,41)) #출력값->41-31-21

#이름을 정해줄 수 있다.
print("{top}-{mid}-{bottom}".format(bottom="케이틀린과 레오나", mid="야스오", top="쉔"))
#출력값->쉔-야스오-케이틀린과 레오나

 

물론 "{}".format방식도 서식지정자를 사용할 수 있습니다. 바로 "{:=+05d}".format(15)와 같은 형태로요

#"{}".format() 방식의 서식지정자 사용법
print("{:=+05d}".format(15)) #출력값->+0015

 

 

3. f"{}"

f"{}"방식은 가장 최근에 파이썬에 등장한 방식으로, "{}".format()과 비슷한 형태로 사용되지만 더 간결해 진 방법입니다.

f"{}"방식은 아래와 같이 사용합니다.

 

name = 'inhyeok'
age = 24
print(f"hi! my name is {name} and i'm {age} years old")
#출력값 : hi! my name is inhyeok and i'm 24 years old

 

f"{}"방식의 서식지정자 사용법은 아래와 같습니다.

#"{}".format() 방식과 딱히 다르지 않습니다.
print(f"{5:=+5d}\n{0.32:.3f}\n{'안녕하세요'}") 
#출력값
#+   5
#0.320
#안녕하세요

 

 

이상으로 Python 문자열 포메팅 방법에 대한 포스팅을 마치겠습니다!

'Python' 카테고리의 다른 글

[Python] Map함수  (0) 2021.06.28

+ Recent posts