본문 바로가기
IT이야기/CODE PRACTICE

[PYTHON] 코테에 사용되는 기본 내장함수

by JI_NOH 2024. 10. 18.

 

코테에 사용되는 기본문법에 이어 기본내장함수만 정리해봤다.

 

 

2.기본내장함수 & 알아두면 좋은 함수

2-1. ljust, rjust, zfill

string.ljust(len, text): 문자열을 왼쪽으로 밀고 len만큼 오른쪽에 text를 채워넣음
string.rjust(len, text): 문자열을 오른쪽으로 밀고 len만큼 왼쪽에 text를 채워넣음
 

사실 우리에게 익숙한 함수는 lpad, rpad일텐데 파이썬에는 내장함수로 존재하지 않고 ljust, rjust라는 함수가 존재한다.

num = int(input())
    row = "*"
    for i in range(0, num):
        res = str(row * i).ljust(num, ' ')
        rev = str(row * i).rjust(num, ' ')
        print(res+rev)
    for j in range(num, 0, -1):
        res = str(row * j).ljust(num, ' ')
        rev = str(row * j).rjust(num, ' ')
        print(res+rev)
 

 

 

 

2-2. lpad, rpad

def lpad(i, len, fillchar='0'):
    return str(i).rjust(len, fillchar)
def rpad(i, len, fillchar='0'):
    return str(i).ljust(len, fillchar)
 
    num = int(input())
    row = "*"
    for i in range(0, num):
        res = rpad(row * i, num, ' ')
        rev = lpad(row * i, num, ' ')
        print(res+rev)
    for j in range(num, 0, -1):
        res = rpad(row * j, num, ' ')
        rev = lpad(row * j, num, ' ')
        print(res+rev)
 

padding함수는 파이썬에 자체내장되어있지 않아 만들어서 사용한다고 가정하면 위처럼 쓸 수 있다.

 

 

2-3. map

map(dataType, value)

map(int, '12345') => 12345
list(map(int, '12345')) => [1,3,5,7,9]
 

코테 연습하며 가장 많이 사용하게 되는 함수 중 하나였다.

특히나 인풋을 받아 list로 변환하는 등의 모습으로 자주 쓰이게 된다.

 

 

2-4. join (list to string)

list = ['h','e','l','l','o']
print(''.join(list))   => 'hello'
print(','.join(list))  => 'h,e,l,l,o'
 

for문으로 리스트 값을 string으로 붙여쓸 수도 있겠으나 join이 보다 가시적이다.

 

 

2-5. 리스트 정렬

list.sort()
list.sort(reverse=True)
 

파이썬은 참 편하다. 리스트로 받아서 최대 최소 값 구하라는 문제가 나오면 sort 만 하면 되니까 ㅎㅎ

기본적으로 오름차순이며 내림차순은 reverse=True를 해주면 된다.

 

 

2-6. 대소문자 변환

a = string.upper()
b = string.lower()  # string은 변수명 넣으면됨
string.isupper()    # 내부 문자열이 모두 대문자면 True 아니면 False
 

 

2-7. zip()

 

name = ['kim', 'choi']
age = [25, 26]

person = zip(name, age)
print(list(person))

=>[('kim',25),('choi',26)]
 

두개의 리스트를 묶어서 사용할 때 쓰게 된다고 함.

사실 실질적 효용은 모르겠으나 코테 풀며 사용한 이력이 있어 기록은 해둔다. --> 풀면 풀수록 꽤나 사용하게 됨.

for문에서도 쓸 수 있음!

 

 

2-8. 올림 내림

# 실수를 입력하면 올림 하여 정수를 반환하는 함수
math.ceil( )

# 실수를 입력하면 내림하여 정수를 반환하는 함수
math.floor( )
 

 

2-9. filter

list(filter(func, word_list))
 

func는 직접 만든 function을 넣어도 된다.

filter는 반환값이 iterator객체라 데이터타입을 선언하여 받아줘야한다.

1.숫자(정수) 추출
a='123abc'
result=int(filter(str.isdigit, a))
 
2.문자 추출
a='123abc'
result=list(filter(str.isalpha, a))
 

 

2-10. 순열, 조합

import itertools
lst = ['A', 'B', 'C']

itertools.permutations(lst, 2)   
#순열 res ['AB', 'AC', 'BA', 'BC', 'CA', 'CB']

itertools.combinations(lst, 2) 
#조합 res ['AB', 'AC', 'BC']
 

순열 : 순서를 생각하고 num개수만큼 추출해서 뽑음

조합 : 순서를 생각하지 않고 num개수만큼 추출해서 뽑음 (AB == BA)

 

 

2-11. slice()

arr = ['a','b','c','d','e','f']
        0   1   2   3   4   5
       -6  -5  -4  -3  -2  -1

#arr[start, end]
arr[1:]    => ['b','c','d','e','f']
arr[-4:]   => ['c','d','e','f']
arr[:3]    => ['a','b','c']
arr[:-5]   => ['a']
arr[2:4]   => ['c','d']
arr[-5:-2] => ['b','c','d']
 
#arr[start, end, step]
#step > 0 : 오른쪽으로 step만큼 이동하며 가져옴
#step < 0 : 왼쪽으로 step만큼 이동하며 가져옴
arr[::2]    =>['a','c','e']
arr[3:0:-1] =>['d','c','b']
arr[3::-1]  =>['d','c','b','a']
arr[::-1]   =>['f', 'e', 'd', 'c', 'b', 'a']
 

 

2-12. 리스트 함수

.insert(idx)     #원하는 인덱스위치에
.append()        #제일뒤에
.remove(val)     #특정값지우기
.pop()           #제일 뒤 팝
.pop(idx)        #원하는 인덱스 팝
reversed(list)   #list[::-1]과 결과값 동일
list.reverse()   #list를 뒤집어버림. 반환값이 별도로 존재하지않음. 이미 취해진 액션 
str[a:b]         #a번째부터 b번째 직전까지의 요소 (slice참고)