정리

김주현·2021년 7월 3일
0

튜플을 사용하면 좋은 경우

서로 다른 성질의 데이터를 묶어서 관리해야 할 때

  • 최단경로 알고리즘에서는 (비용,노드번호)
    데이터의 나열을 해싱의 키 값으로 사용할때
    튜플은 변경이 불가능하므로 리스트와 다르게 키 값으로 사용 될 수 있다.
  • 리스트보다 메모리를 효율적으로 사용해야 할 때

딕셔너리(사전자료형)이 좋은경우

data=dict()
data['사과']='Apple'
if '사과' in data:
	print("'사과'를 키로 가지는 데이터가 존재합니다")
   이런식으로 어떠한 데이터를 조회할때 효과적이다```
   key,value 값을 뽑아 낼 수 있고,
뽑아낸 key값을 key_list=list(data.key()
리스트로 변환이 가능하다.(set 메소드를 이용해서 중복된 값을 제거가 가능)```

빠르게 입력받기

사용자로부터 입력을 최대한 빠르게 받아야 하는 경우
파이썬의 경우 sys라이브러리에 정의 되어 있음 sys.stdin.readline()메소드 이용

  • 입력후 (Enter)가 줄 바꿈 기호로 입력되므로 rstrip()메서드 함께 사용

f-string 쓰는 이유

answer=7
print("정답은" +str(answer)+"입니다")
____
answer=7
print(f"정답은"+{answer}입니다.")
이렇게 변수값을 따로 문자열로 변환하지 않고 진행이 가능함

pass 키워드

디버깅 과정에서 일단 조건문의 형태만 만들어 놓고 조건문을 처리하는 부분을 비어놓고 싶을 경우

score = 85
if score >= 80:
	pass  #나중에 작성할 코드
else:
	print("성적이 80점 미만입니다")
print("프로그램이 종료됩니다.)
출력: 프로그램이 종료됩니다.

조건문의 간소화
:)조건문에서 실행될 소스코드가 한줄인 경우,굳이 줄 바꿈을 하지 않고간략하게 표현가능

score = 85
if score >=80: result = "success"
else: result = "fail"
출력: success

:) if ~ else 문을 한줄에 작성할 수 있음

score = 85
result = "success" if score >= 80 else "fail"
print(result)
출력: success

while vs for 코딩 테스트에서의 실제 사용 예시를 확인해보면 for문이 더 간결함

i =1
result = 0
while i<=9:
    result +=i
    i+=1
print(result)
출력:45
_____
result = 0
for i in range(1,10):
  result+=i
print(result)
출력:45

함수

프로그램에는 똑같은 코드가 반복적으로 사용되어야 할 때가 많다.
함수를 사용하면 소스코드의 길이를 줄일 수 있음
매개변수 : 함수 내부에서 사용할 변수
반환 값: 함수에서 처리 된 결과를 반환

def 함수명(매개변수):
	실행할 소스코드
    return 반환 값

지역변수 ,전역변수

array = [1,2,3,4,5]
def func():
	global array  #global 함수를 이용해서 [1,2,3,4,5]를 가져오고 지역변수로 초기화
  array = [3, 4, 5] 
  array.append(6)
func()
print(array)
출력:[3,4,5,6] 

코딩테스트에서 실제로 지역변수,전역변수의 이름이 같지 않을 경우가 많으며 scope 를 신경 쓸 필요가 없다.

여러개의 반환 값

def operator(a,b):
  add_var = a+b
  subtract_var = a-b
  multiply_var = a*b
  divide_var = a/b
  return add_var,subtract_var,multiply_var,divide_var #패킹!!
a,b,c,d = operator(7,3) # 언패킹
print(a,b,c,d)

람다 표현식 : 어떠한 함수자체를 입력으로 받는 또 다른 함수가 존재할 수 있는데 그러한 상황에서 유용 또한 한번 사용하고 말경우에 쓰일때 좋다.

print((lambda a,b: a+b)(3,7))
____
array = [('홍길동',50),('이순신',32),('아무개',74)]
def my_key(x):
      return x[1]
print(sorted(array,key=my_key)) #key값의 x[1]의 값을 기준으로 정렬
print(sorted(array,key=lambda x:x[1])) #함수식이 없음
출력:[('이순신', 32), ('홍길동', 50), ('아무개', 74)]
:)정렬식은한번 사용하고 쓰지 않기 때문에 lambda식이 유용함
profile
잼민이개발자

0개의 댓글

Powered by GraphCDN, the GraphQL CDN