티스토리 뷰

#주요 라이브러리의 문법과 유의점



# 책에서 말하는 코테에 가장 중요한 파이썬 라이브러리는 6가지가 있다

# 내장함수 : 설명생략

# itertools: iter는 반복이라는 뜻이 있다., 반복되는 형태의 데이터를 처리하는 기능을 제공한다. 순열과 조합 라이브러리를 제공한다.

# heapq : 힙(heap) 기능을 제공하는 라이브러리다.  우선순위 큐 기능을 구현할떄 사용

# bisect: 이진탐색 기능을 제공한다

#collections : 덱(deque), 카운터(Counter) 기능을 제공하는 라이브러리

# math : 필수적인 수학적 기능을 제공하느 라이브러리이다 .  팩토리얼,제곱근,최대공약수(GCD), 삼각함수 관련 함수부터 파이 같은 상수도 있다.



#내장함수



#iterable객체란?  iterable 객체는 반복가능한 객체를 말한다.  리스트,사전자료형,튜플자료형 등이 해당함



#sum() 함수는 iterable 객체가 주어졌을때 우너소의 합 리턴

result = sum([1,2,3,4,5])

result = sum([2,5,6,7])

print(result)



# min() 리스트넣어도 되고 그냥 max() 에 보이는 것 처럼 숫자 넣어도 됌  리스트 여러개를 넣을시 가장적은수가 있는 리스트 반환

result = min([7,13,53,23],[24,8,55,66,77])

result = min([7,13,53,23])

print(result)



result= max(1,2,53,67,3565,532)

print(result)



#eval() 함수는 문자열형태의 수식 입력값을 받아서  그 수식을 풀은 값을 반환값으로 반환한다.

result= eval("4*(2+3)+3")

print(result)



#sorted() 는 iterable 객체가 들어 왔을때 정렬된 결과를 반환한다.



result = sorted([1,3,22,4,6])  #오름차순 정렬

print(result)

result = sorted([1,3,22,4,6],reverse=True)  #내림차순

print(result)



# 어려움주의!@

#리스트의 원소로 리스트나 튜플이 존재할때 

# 특정한 기준에 따라서 정렬을 수행할 수 있다. 정렬 기준은 key 속성을 통해 명시 가능  

# 예시로 아래처럼 원소를 튜플의 두 번째 원소(수)를 기준으로 내림차순으로 정렬하고자 한다면 다음과 같이 사용가능

result = sorted([('홍길동',60),('홍길동',35),('이순신',75),('아무개',50),('이순신',35)],key = lambda y:(y[1],y[0]),reverse=True)  

# key 속성은 정렬기준이 되길 원하는 함수를 값으로 받아서 정렬기준을 정해준다. 

# 위의 key의 경우 리스트안에 튜플의 1번인덱스 값의 크기를 먼저비교하고 0번인덱스를 후순위로 비교해서 정렬하라는 람다식을 받고 있는것이다.

print(result)



# 위에 말 이해가 안가서 다른사이트에서 공부함

result=sorted("난는 위에서 무슨말하는지 잘 모르겠어요".split(),key=str.lower)  # 문장을 띄어쓰기 기준으로 띄워서 저장하는데 저장하는 기준은 str.lower 이다

print(result)




# list.sort()  list 는 기본적으로 sort() 함수를 내장하고 있다

data = [1,5,7,24,3,2]

data.sort()

print(data)




#itertools 에 여러 클래스가 제공되고 그중 가장 잘 쓰이는 것은 permutations(한국말 순열)와 combinations(한국말로 조합)이다



from itertools import permutations



data = ['A','B','C']  #데이터 준비



result = list(permutations(data,3)) # 모든 순열 구하기   data의 원소를  이용해 3개의 배열로 나타내는 것  순서가 존재 구분함



print(result)



from itertools import combinations



data =['A','B','C']

#combinations

result = list(combinations(data,2))  # 2개를 뽑는 모든 조합을 구함 

print(result)




# product



from itertools import product