알고리즘용 꿀 기능 정리

김민석·2021년 2월 18일
0

깨알

목록 보기
1/3

List

indexing 할 때

빈 listlist = []list[-1],list[1] 과 같이 indexing 할 때, list가 비어있으면 error를 뱉는다.
이때, 빈 리스트거나 해당 리스트에 해당하는 값이 없을 때 error를 뱉지 않게 하려면, list[-1:],list[1:]과 같이 해주면, error를 뱉지 않고, 빈 배열을 뱉는다.


pop, remove, dell

  • pop, del => index로 삭제

del 같은 경우는

del [a:]

같이 사용 가능

  • remove => 값으로 삭제

enumerate(list, start=number)

a = [38,21,53]
for index, value in enumerate(a):
	print(index,value)
-----------------------------------
0 38
1 21
2 53

[식 for 변수 in 리스트]

다양하게 응용할 수 있더라

[식 for 변수1 in 리스트1 if 조건식1
   for 변수2 in 리스트2 if 조건식2
   for 변수3 in 리스트3 if 조건식3
   for 변수4 in 리스트4 if 조건식4]
a = [[j*i for j in range(2)] for i in range(3)]
------------------------------------------------
[[0, 0], [0, 1], [0, 2]]


String

문자 바꾸기

replace('바꿀 문자열', '새 문자열')
table = str.maketrans('aeiou','12345') << 변환테이블
'apple'.translate(table)
---------------------------------------
'1ppl2'	

공백 삭제

' ,python.'.lstrip(',.')   << 문자열 왼쪽의 ,과 .을 삭제함
----------------------------------------------------
' python' << 왼쪽 공백은 그대로 둠


' ,python.'.lstrip(',.')   << 문자열 오른쪽의 ,과 .을 삭제함
----------------------------------------------------
' ,python' 


' ,python.'.strip(',.')   << 문자열 양쪽의 ,과 .을 삭제함
----------------------------------------------------
' python' 

정렬

rjust(길이,[fillchar]), ljust(길이), center(길이)

'python'.rjust(10)
'     python'

문자열 왼쪽에 0 채우기

'35'.zfill(4)   <<   '0035'

'hello'.zfill(7)  << 	'00hello'

문자열 찾기/세기

index, rindex / find, rfind

index는 없을 시에 에러가 발생하지만 find는 에러가 발생하지 않는다.

count


서식 지정자

string

'I am %s.' % 'james'
---------------------
'I am james.'
name = 'james'
'I am %s.' % name
---------------------
'I am james.'
name = 'james'
'I am %10s.' % name
---------------------
'I am      james.'

decimal integer

'I am %d years old.' % 20
---------------------
'I am 20 years old.'

float

'I am %f years old.' % 20.3
---------------------
'I am 20.300000 years old.'
'I am %.2f years old.' % 20.3
---------------------
'I am 20.30 years old.'

아래와 같이 여러개 넣을 수 있음

'Today is %d %s.' % (3, 'April')
'Today is 3 April.'

formatting

index 형식으로 했지만 변수처럼 지정해서 사용 할 수 있다.

'Hello, {0} {2} {1}'.format('Python', 'Script', 3.6)
------------------------------------------------------
'Hello, Python 3.6 Script'
language = 'Python'
version = 3.6
f'Hello, {language} {version}'  << f가 formatting 표시
----------------------------
Hello, Python 3.6

그 밖에도,

'{인덱스:0<길이}'.format(값) /왼쪽 정렬
'{인덱스:0>길이}'.format(값) /오른쪽 정렬
'{인덱스:0글자수d}'.format(숫자) /글자수보다 적은 부분을 0으로 채움

'{0:x>10}'.format(15) 숫자를 넣고, 글자수가 10이하면 나머지를 x로 채운다.
-> '0000000015'



Dictionary

dic.update(key = value, key = value)

dic 안에 해당하는 key가 있으면 value를 update.
해당하는 key가 없으면 새로운 key:value pair 생성.(여러 개 동시에 가능)

키가 숫자일 경우는 ()내부를 {}로 감싸주면 된다.
y.update({1: 'ONE', 3: 'THREE'})


dic.pop(key, default)

key값에 해당하는 item을 삭제하고 삭제한 값을 반환하지만,
해당하는 key가 없으면 default 값을 반환한다.


dic.get(key, default)

특정 key의 값을 가져온다.
해당하는 key가 없으면 default값을 반환한다.


dictionary에서 키-값 쌍 가져오기

  • dic.keys() : 키를 모두 가져옴
  • dic.values() : 값을 모두 가져옴

dict.fromkeys(list_of_keys, value)

keys=['a', 'b', 'c', 'd']
x = dict.fromkeys(keys)
x
{'a': None, 'b': None ...}

{키: 값 for 키, 값 in dictionary}


Dctionary에 if문 사용 가능

x = {'a':10, 'b':20, 'c': 30, 'd':40}
x = {key: value for key, value in x.items() if value != 20}
x
------------------------------------------------------------
{'a':10, 'c': 30, 'd':40}

integer

int(x, base)

int 함수는 x에 들어온 문자열이나 숫자를 (base)진법으로 인식해서 10진법 정수로 바꾸어준다.


Library

코딩테스트에 자주 사용되는 라이브러리를 정리한 곳.
https://velog.io/@koyo/python-docs-6

operator.itemgetter

배열 속의 배열 등에 사용 할 수 있다. 각 배열의 n번째를 비교 할 수 있다.
(아래 사진을 누르면 공식 페이지로 이동)

0개의 댓글