본문 바로가기
프로그래밍/파이썬 문법

호기심 파이썬(유용한 method 및 함수 활용 예시)

by 인성패밀리 2022. 4. 21.
반응형

이번에는 파이썬에서 유용하게 쓰이는 자료형의 메소드와 유용한 함수에 대해서 알아보겠습니다.

 

해당 내용은 몰라도 꾸역꾸역 구현할 수 있지만 이미 만들어져 있으므로 그냥 가져다 사용하면 됩니다.

 

1. 합계 구하기

2. 문자열 분리

3. map 함수

4. 대문자? 소문자?

5. 길이(원소의 개수) 구하기

6. 리스트 원소의 index번호 구하기

 

 

1. 합계 구하기

for 반복문을 이용하면 합계를 구하는 코드는 손쉽게 만들 수 있습니다.

리스트 변수에 있는 데이터를 모두 더하는 코드입니다.
사용 결과 총합이 구해졌습니다.

그러나 이러한 코드 대신에 sum함수를 사용하면 훨씬 간편합니다.

아까와 결과는 똑같습니다.

형식은 다음과 같습니다.

sum(자료형)  => 자료형에는 리스트와 튜플이 사용됩니다.

 

2. 문자열 분리

"1 2 3 4 5" 이런식으로 되어있는 문자열을 분리시켜 문자열 형태로 리스트에 저장됩니다. 사용방법은 다음과 같습니다.

split method라고 합니다.
문자열을 나누었기에 리스트 안의 자료형도 문자열입니다.

split method의 형식은 다음과 같습니다.

문자열.split(기준 문자열)

기준 문자열이 없으면 default 공백을 기준으로 나누게 됩니다.

 

이것을 이용하면 입력 값을 받을 때 한 번에 여러가지를 입력받아 리스트에 저장할 수 있습니다.

공백을 기준으로 나누게 된다.
공백을 기준으로 문자열이 나뉘어진 모습이다.

input().split() 이 부분을 보면 input()까지는 문자열인 형태이다. 즉 문자열.split() 형태로 변형되어 문자열이 나뉘어지게 된 것입니다.

 

3. map 함수

1. 문자열 분리에서 "1 2 3 4 5"를 split을 사용하여 분리하면 ['1', '2', '3', '4', '5']로 분리되었습니다. map 함수를 이용하면 이 리스트 안의 문자열을 모두 숫자로 변경할 수도 있습니다.

다음의 예시를 보겠습니다.

다소 복잡해보이지만 전혀 그렇지 않습니다.
아까는 문자열이 들어갔는데 이번에는 정수로 변경이 되었습니다.

굉장히 복잡해 보이지만 형식을 이해하면 전혀 그렇지 않습니다.

map(형 변환 함수, iterable1, iterable2, ...)

 

형 변환 함수는 각 자료형 마다 있는 것인데 대표적으로 다음과 같은 형 변환 함수가 있습니다.

정수 => int()

실수 => float()

문자열 => str()

리스트 => list()

튜플 => tuple()

딕셔너리 => dict()

 

이때 뒤의 괄호만 빼고 들어가게 됩니다.

 

다음 iterable은 무슨 말이냐면 반복이 가능한 객체를 말합니다. 대표적으로 리스트, 튜플과 같은 것들이 있습니다. 이 함수를 직접 만들어보면 다음과 같이 표현할 수 있습니다.

결과는 위와 같습니다.

동작 과정은 위의 코드 처럼 생각하셔도 괜찮습니다. 또한 map 함수를 모르면 위 처럼 사용해도 괜찮습니다.

map 함수를 사용할 때 주의할 점이 있는데

value = map(int, input().split())  => 이렇게만 사용하면 절때 리스트나 튜플로 사용할 수 없습니다.

때문에 위의 예시코드를 보면 전체적으로 list 함수를 사용하여 형 변환하는 것을 볼 수 있습니다.

 

4. 대문자? 소문자?

어떤 문자가 대문자인지? 소문자인지? 참 거짓을 판단하는 방법과 대문자를 소문자로 소문자를 대문자로 변경할 수 있는 메소드에 대해서 알아보겠습니다. 다음의 예시코드를 보겠습니다.

문법은 아래에서 설명하겠습니다.

문자열에서 사용하는 isupper 메소드와 islower 메소드는 해당 문자열이 대문자인지 소문자인지 구분하여 결과값으로 True 또는 False로 반환해주는 메소드입니다. 형식은 다음과 같습니다.

문자열.isupper()  또는 문자열.islower()

 

문자열.upper() 또는 문자열.lower() 처럼 사용하면 대문자를 소문자로 소문자를 대문자로 바꿀 수 있습니다. 그러나 원래 변수에 저장되어 있던 값은 변하지 않습니다.

 

물론 이 메소드들을 몰라도 충분히 만들 수 있습니다. 먼저 대문자인지 소문자인지 판단하는 코드를 만들어보겠습니다.

in 문법을 사용하면 됩니다.
아까와 동일합니다.

"a" in "QWEASDZXCRTYFGHVBNUIOJKLMP"   => 즉 이 문장은 문자열 a가 문자열 QWEASDZXCRTYFGHVBNUIOJKLMP에 들어있는지 True 또는 False로 나타내는 것입니다.

 

이번에는 대문자를 소문자로 소문자를 대문자로 바꾸어주는 코드를 구현해보겠습니다.

이 이상은 더 적지 않겠습니다.

이와 같이 if문을 사용하여 충분히 구현할 수 있습니다. 그러나 너무 많습니다...

 

5. 길이(원소의 개수) 구하기

길이를 구할 수 있는 것 대표적으로 문자열, 리스트, 튜플, 딕셔너리의 길이를 구할 수 있습니다. 여기서 말하는 길이는 원소의 개수를 말합니다. 아래의 코드를 보고 예시를 보겠습니다.

개수를 구하는 것이 길이를 구하는 것이다 라고 생각하면 쉽습니다.
결과 화면

문자열에 문자가 4개 있으니 길이는 4가 됩니다. 리스트의 원소가 5개 있으므로 길이는 5입니다. 튜플의 원소가 6개이니 길이는 6이 됩니다.

 

그렇다면 어떻게 구현이 되었을까요?

이런식으로 구현될 수 있습니다.
리스트를 6번 반복했으므로 6이 출력되었습니다.

 

그 다음에는 활용하는 부분에 적용을 해보도록 하겠습니다.

i에 인덱스 번호가 들어가게 만든 것입니다.
모든 원소에 3을 곱한 것입니다.

range(len(list1))은 리스트의 원소가 5개이므로 range(5)로 변환되어 0~4가 됩니다. 그런데 0~4라는 것은 리스트의 인덱스 번호와 매우 똑같습니다. 이러한 방법으로 자주 사용됩니다.

 

6. 리스트 원소의 index번호 구하기

이번에는 리스트 원소의 인덱스 번호를 구해주는 메소드에 대해서 알아보겠습니다. 다음의 코드를 보겠습니다.

이 코드의 결과는?
리스트 원소 3의 인덱스 번호인 2가 출력되었습니다.

형식은 다음과 같습니다.

리스트.index(리스트 안의 원소)

반응형

댓글