algo python 알아둘 것 정리 (계속 업데이트)

2 minute read

0) 기타

  • / : 나눗셈 연산

    % : 나머지를 구하는 연산

    // : 몫을 구하는 연산

  • enumerate()

    • for 문을 사용할 때, 인덱스와 값을 동시에 사용할 수 있게 해줌!
    for i, j in enumerate(['a', 'b', 'c']):
        print(i, j)
          
        # 0 a
        # 1 b
        # 2 c
    
  • sum( list )

    • 함수 안에 있는 list 요소들을 다 더해 줌
  • ord(“Z”) < – > chr(90)

  • 문자열을 리스트에 요소 하나하나 넣을 때

    list1 = [int(i) for i in s]
    list2 = list(map(int, list1))
    
  • 빈 리스트를 선언할 때는 list1 = list() 보다는 list1 = [] 가 좋다! (참고)

  • list.remove(x) : 리스트에서 x 를 제거함

1) 문자열

  • 문자열 함수는 해당 문자열을 직접 수정하는 것이 아니라 COPY한 다른 문자열을 만들어내는 것!
  • 문자열은 immutable한 자료형으로, s[3] = ‘k’ 같은 작업을 할 수 없다.

  • s.lower() / s.upper()
  • s.count(‘x’)
    • 문자열 s에 ‘x’가 몇 개 있는 지, 갯수를 리턴함
  • s.index(‘x’) / s.find(‘x’)
    • 문자열 s에 ‘x’ 가 어디에 있는지 그 인덱스 값을 반환함
    • 만약 ‘x’가 없을 경우, index()는 에러를 반환 / find()는 -1을 반환한다
    • 리스트에도 사용가능 (흠…)
  • ” “.join(string)
    • 리스트 값들을 합쳐서 문자열로 만들어 준다
    • ”“.join([‘a’, ‘b’, ‘c’]) -> “abc”
    • ” &”.join([‘a’, ‘b’, ‘c’]) -> “a&b&c”
  • s.isupper() / s.islower() / s.isalnum() / s.isdigit() / s.decimal() / s.isalpha()
  • s.strip() / s.lstrip() / s.rstrip()
    • 문자열 공백 제거

2) 슬라이싱 Slicing

  • 슬라이싱은 새로운 배열을 반환한다!

3) lambda

4) 정렬 sort() / sorted()

  • string.sort(reverse=True) / sorted(string, reverse=True)
    • 내림차순으로 정렬
    • reversed 아니야! “reverse”
  • 차이점 (참고)
list.sort() / string.sort() sorted(list) / sorted(string)
원본을 직접 정렬 원본에 영향을 끼치지 않음
None을 반환함 정렬한 새로운 문자열 혹은 list를 반환함

5) dict 관련 함수

  • setdefault(key, default_value)
    • 만약 dictionary에 key 값이 없다면 key : default_value 를 추가한다
    • key 값이 있다면 default_value 무시

for - else

  • for 문안에 if와 break가 있을 때 주로 사용한다 (편리!)

  • for문 안에서 break를 만나지 않았고, for문이 종료되었을 경우 else 구문이 한 번 실행된다

  • 만약 break를 만났다면 else는 실행되지 않고 for 문은 종료

    for i in range(0,5):
        if i>10:
            print(i)
            break
    else :
        print ("else")
    
    • if 조건을 만족하지 않으므로 break를 만나지 않음
    • else 구문의 print(“else”) 가 실행됨
  • 예시 출처

    for n in range(2, 10):
        for x in range(2, n):
            if n % x == 0:
                print( n, 'equals', x, '*', n/x)
                break
        else:
            # loop fell through without finding a factor
            print(n, 'is a prime number')
    
    • 2 is a prime number

      3 is a prime number

      4 equals 2 * 2.0

      5 is a prime number

      6 equals 2 * 3.0

      7 is a prime number

      8 equals 2 * 4.0

      9 equals 3 * 3.0

Comments