파이썬

    join 함수

    join 함수는 매개변수로 들어온 리스트에 있는 요소 하나하나를 합쳐서 하나의 문자열로 바꾸어 반환하는 함수이다. '구분자'.join(리스트) '구분자'.join(리스트)를 이용하면 리스트의 값과 값 사이에 '구분자'에 들어온 구분자를 넣어서 하나의 문자열로 합쳐준다. '_'.join(['a', 'b', 'c']) 라 하면 "a_b_c" 와 같은 형태로 문자열을 만들어 반환해 준다.

    Counter 함수

    Counter() Counter 함수는 문자열이나 리스트 안의 값들마다 나오는 빈도수를 세어 딕셔너리 형태로 반환한다. 이때 빈도수에 따라 내림차순으로 나타내준다. from collections import Counter array = [1,5,5,1,1] Counter(array) print(Counter(array)) 위 코드의 결과값으로 Counter({1: 3, 5: 2}) 딕셔너리가 출력된다. Counter().most_common() most_common()은 빈도수에 따라 2차원 배열의 형태로 결과를 반환한다. from collections import Counter array = [1,5,5,1,1] Counter(array) print(Counter(array).most_common())..

    print문의 옵션

    파이썬의 출력문 print는 두 개의 옵션을 사용할 수 있다. sep="" 이 옵션을 이용하게 되면 print문의 출력문들 사이에 해당하는 내용을 넣을 수 있다. sep=""를 사용하면 출력물 사이의 공백을 없앨 수 있다. end="" 이 옵션의 경우 print 문을 이용해 출력을 완료한 뒤의 내용을 수정할 수 있습니다. end=""를 사용하면 출력문의 개행을 없앨 수 있다. 다음과 같이 활용한다. print("1-1칸","1-2칸","1-3칸",end = "") print("2-1칸","2-2칸","2-3칸",sep = "") 위 코드의 실행결과는 1-1칸 1-2칸 1-3칸2-1칸2-2칸2-3칸이 출력된다.

    파이썬 깊은 복사와 얕은 복사

    파이썬에서 list는 변경이 가능한 mutable 객체이다. 해당 객체를 복사할때는 얕은 복사와 깊은 복사를 구분하여야 한다. 얕은 복사 얕은 복사를 하면 복사가 아닌 참조가 되어서, 같은 주소를 가리키는 변수가 하나 생긴것 뿐이다. 따라서 얕은 복사를 하고 그 list에 있는 값을 변경하면 원래 넣어놨던 변수의 값도 함께 변경된다. test_array = original_array 위에 코드에서 test_array 안의 list 값을 변경하면 original_array의 값도 함께 변경된다. 이를 조심해야 한다. 원래 리스트의 값들을 복사해서 새롭게 할당된 리스트에 저장하고 싶다면 깊은 복사를 사용한다. 깊은 복사 깊은 복사는 새롭게 리스트를 복사하여 주소값이 아예 다른 별개의 변수가 생기는 것이다. ..

    파이썬 리스트에서 맨 마지막 원소 찾기

    인덱스에 -1을 넣어 맨 마지막 원소를 찾는 것이 가장 파이썬스러운 방법이다. listA = [1,2,3,4,5] listA[-1] = "change" print listA 위의 코드는 [1, 2, 3, 4, 'change!'] 를 출력한다.

    'int' object is not callable 에러

    에러 발생 원인 해당 오류가 발생한 이유는 예약어를 변수명으로 사용 하였기 때문이다. 기초 프로그래밍을 공부하며 이러한 실수를 많이 할 수 있는 예약어들이 sum(), min(), max() 등이 있을 것이다. 이러한 예약어들은 각각의 기능들이 있는 함수이다. 기초 프로그래밍을 하다보면 합을 구하는 문제, 최댓값, 최솟값 등을 구하는 문제들이 많이 나오는데 이 경우, 위와 같은 단어들을 변수명으로 사용하는 경우가 종종 있을 것이다. 하지만 이미 (예를들어) sum을 변수명으로 사용한 후에 sum() 함수를 다시 사용할 경우 이름의 중복으로 인해 해당 오류가 발생하게 된다. ​ 해결법 해당 예약어는 변수명으로 사용하지 않는 것이 가장 근본적이고 좋은 해결법이다. 변수명은 예약어와 겹치지 않고, 잘 알아볼 ..

    파이썬에서 함수 안에 전역변수를 쓸 때

    파이썬에서 전역변수를 함수 안에서 활용할 때는 다음과 같이 x = 10 def func(): global x # 이와 같이 global이라는 표현을 써준다 x += 1 print(x) func() 함수 안에서 전역변수 앞에 global 이라는 선언을 해준다. 위의 선언을 해주지 않으면 'UnboundLocalError: local variable referenced before assignment' 에러가 나게 된다.

    파이썬에서 입력 빠르게 받기

    sys.stdin.readline() 반복문으로 여러줄을 입력받아야 하는 경우 위 명령어를 써준다. input()대신 sys.stdin.readline()을 사용하는 이유 input()은 parameter로 prompt message를 받을 수 있다. 따라서 입력받기 전 prompt message를 출력해야 한다. 또한 input()은 입력받은 값의 개행문자를 삭제하여 반환한다. 하지만 sys.stdin.readline()는 prompt message를 파라미터로 받지 않으며, 개행문자도 포함해서 반환한다. 이런 이유로 sys.stdin.readline()가 input()보다 빠르기 때문에 알고리즘 문제를 풀때 반복해서 입력을 받아야 하는 경우 시간초과 문제를 해결할 수 있게 도와준다. 주의점 sys.s..

    파이썬의 list와 array

    일반적으로 배열은 인덱스를 가지지만 리스트는 그렇지 않다. 하지만 파이썬에서 list는 배열처럼 구현되어 있다. 즉 index로 각각의 원소에 접근이 가능하다. 파이썬의 list는 append, pop 등의 다양한 기능을 지원한다.

    set 함수

    set은 list나 문자열을 집합처리 해준다. set 자료형은 몇가지 특징이 있다. 1) 중복을 허용하지 않는다 2) 순서가 없다 위의 특징은 집합의 특징이다. >>> s2 = set("Hello") >>> s2 {'e', 'H', 'l', 'o'} 위 코드에서 중복된 문자가 제거되고 순서가 없어진 것을 볼 수 있다.