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

파이썬 알고리즘 인터뷰 (03-05)

by 훨훨날아 2021. 5. 26.

03 로그파일 재정렬

배운것: 리스트 안에서 순자,문자 구분 // 람다표현식 // 리스트순서 정렬

 

.isdigit() = 숫자인지 판별

digit.append(log) = 로그를 digit에 더해라

.sort() = 오름차순으로 정렬, 리스트자체값을 바꾼다. 출력되는 값은 없다.

.sorted() = 오름차순으로 정렬, 리스트 자체값을 바꾸지 않고 출력값만 바뀐다. 

.sort( key=lambda x: (x.split()[1:], x.split()[0]) = 정렬이되는 키값이 두번째값 그다음 첫번쨰 값 순서로 정렬된다)

[ 1, 2, 3] + [4, 5 6] = [ 1 2 3 4 5 6]

 

04 가장흔한단어

배운것: 데이터에 어떤 조건이 있을때 데이터전처리(preprocessing)과정으로 클렌진(cleansing)을 먼저 해준다.

 

re.sub(pattern, repl, input)  = re.sub 은 input에서 pattern 에 해당하는 것을 repl로 바꾼다.

예) re.sub('abc', 'def', input) = input에서 abc를 찾아 def로 바꾼다. 

re.sub(r'[^\w], ' ', input) = input에서 글자가(\w) 아닌것( ' )을 ' '빈칸으로 바꾼다. (제거는 '' ) ( input 뒤에 , 숫자를 넣으면 변경되는 패턴의 갯수를 정할 수 있다. 1이면 첫번째 패턴이 변경)

 

리스트 컴프리핸션(comprehension) - 리스트 내부에 포함된 if else, for in 조건문

 

string.lower() - 문자를 소문자로 바꾸기.

 

if word not in banned = word 가 banned 에 없을때. ( in 함수)

 

dict의 하위클래스로 Counter를 이용해서 dict의 요소를 처리할 수 있다. 

    .elements() = dict 에있는 값들을 중복포함해서 출력한다.

    .most_common() = dict에서 반복되는 값을 내림차순으로 정렬해서 보여준다. most_common(1)은 가장 많은 값을 보여준다. (2)는 많은것 그다음 많은것

    A.subtract(B) = A에서 B의 값들을 뺀다.

 

dictionary.get(keyname, value) = get함수는 keyname을 키로하는 value 값을 출력한다. (예, 동물 = {"호랑이" : 12, "사자":2} 일때   동물.get("호랑이") 는 12를 출력한다.

 

.defaultdict()  = collections 모듈안에 있는 dict형식의 자료컨테이너이고 dict의 하위클래스로 키에 해당하는 값을 출력한다.

from collections import defaultdict
  
  
# Function to return a default
# values for keys that is not
# present
# 값이 없으면 not present로 출력하도록 설정
def def_value():
    return "Not Present"
      
# Defining the dict
# defaultdict에 키값이 입력되면 그에 맞는 value가 출력된다.
d = defaultdict(def_value)
d["a"] = 1
d["b"] = 2
  
print(d["a"])
print(d["b"])
print(d["c"])

output: 
1
2
Not Present


https://www.geeksforgeeks.org/defaultdict-in-python/

 

word가 words에 해당하는 값일 때 word가 있으면 word를 키값으로 value가 1씩 올라간다. counts.get에 서 값들을 가져와서 최대값의 key를 출력한다.

counts = collections.defaultdic(int)
for word in words:
	counts[word] += 1
    
return max(counts, key=counts.get)

 

 

 

 

 

반응형