본문 바로가기

Study/Python study30

[Python(파이썬)] 리스트의 특정 원소 개수 구하기, Counter 리스트의 특정 원소 개수 구하기 count() - 리스트의 특정 원소 개수 구하는 함수 >>> test = [1, 3, 5, 2, 1, 3, 6, 8] >>> test.count(1) 2 >>> test.count(8) 1 >>> test = ['abc', 'apple', 'abaegd', 'abcdeaa', 'cba'] >>> temp = [] >>> for i in test: temp.append(i.count('a')) >>> temp [1, 1, 2, 3, 1] 리스트안 전체 요소의 개수를 각 각 구하기 from collections import Counter Counter(리스트명) >>> from collections import Counter >>> test = [1, 2, 3, 5, 4, .. 2021. 9. 6.
[Python(파이썬)] 리스트 가로, 세로 변환 (행, 열 변환) 그림과 같이 가로와 세로를 변환 하는 방법 test = [[1,2,3,4],[4,5,6,7],[8,9,10,11],[12,13,14,15]] 방법 1 - map 사용 X # map x >>> test2 = [list(i) for i in zip(*test)] # 출력 >>> test2 [[1, 4, 8, 12], [2, 5, 9, 13], [3, 6, 10, 14], [4, 7, 11, 15]] 방법 2 - map 사용 O # map o >>> new_test = list(map(list, zip(*test))) # 출력 >>> new_test [[1, 4, 8, 12], [2, 5, 9, 13], [3, 6, 10, 14], [4, 7, 11, 15]] ※ Asterisk(*) 연산자 하나의 * 연산자.. 2021. 9. 1.
[Python(파이썬)] 별(Asterisk(*)) 연산자 Asterisk(*) 연산자 하나의 * 연산자는 리스트 또는 튜플에 있는 원소들을 개별 인자로 분리해 차례대로 꺼내서 함수 인자에 대응시킨다. ex1) >>> a = [1,2,3] >>> print(a) [1, 2, 3] >>> print(*a) 1 2 3 a 리스트를 * 없이 출력했을 땐 리스트 전체를 리스트 기호와 함께 출력했고 *를 리스트명 앞에 포함했을 땐 원소만 출력했다. ex2) >>> def test(x, y): return x + y >>> a = (5, 8) # without * >>> test(a) Traceback (most recent call last): File "", line 1, in test(a) TypeError: test() missing 1 required positi.. 2021. 9. 1.
[Python(파이썬)] 2차원 리스트를 1차원으로 만들기 2차원 리스트를 1차원으로 만들기 test = [[1], [2, 12], [3, 13, 11], [4, 14, 15, 10], [5, 6, 7, 8, 9]] testresult = [1, 2, 12, 3, 13, 11, 4, 14, 15, 10, 5, 6, 7, 8, 9] 2차원 리스트를 1차원으로 만드는 다양한 방법 1. sum 함수를 이용한 방법 - sum(리스트명, []) 2. itertools를 이용한 방법1 - itertools.chain(*iterables) 3. itertools를 이용한 방법2 - itertools.chain.from_iterable(iterables) 4. list comprehension을 이용한 방법 - reduce(집계 함수, iterable 데이터) 5. reduc.. 2021. 8. 25.
[Python(파이썬)] range, enumerate 함수 range([시작 숫자,] 종료 숫자 [,step]) 특정 구간의 숫자 범위를 만들어 주는 함수 특정 구간의 숫자 범위의 값을 반복 가능한 객체로 만들어 return 시작 숫자를 생략한다면 default = 0 step을 생략한다면 default = 1이다. for문과 함께 사용한 range(시작 숫자, 종료 숫자, step) 시작 숫자부터 step 숫자만큼의 간격으로 (종료 숫자 - 1)까지의 정수 범위를 반환 # range 예 for i in range(2, 8, 2): print(i) # 출력 2 4 6 for문과 함께 사용한 range(시작 숫자, 종료 숫자) 시작 숫자부터 step(default = 1) 간격으로 (종료 숫자 - 1)까지의 정수 범위.. 2021. 8. 20.
[Python(파이썬)] 리스트 초기화 비어있는 리스트 초기화 # 비어있는 리스트 초기화 test = [] 값이 주어진 초기화 # 값이 주어진 초기화 test = [1,2,3,4] test2 = ['2','a','b'] test3 = [[2,3],[3,1],[4,2]] 1차원 리스트 초기화 - for문 사용 -> 컴프리헨션 사용X 초기화하는데 코드가 길어진다. # 리스트 컴프리헨션 X 초기화 test = [] for i in range(5): test.append(0) #[0, 0, 0, 0, 0] - 컴프리헨션 사용 O # 리스트 컴프리헨션 O test = [ 0 for i in range(5)] #[0, 0, 0, 0, 0] 2차원 리스트 초기화 2차원 리스트를 초기화 할 때는 반드시 컴프리헨션을 사용해야 한다. - 컴프리헨션 사용X ->.. 2021. 8. 5.
[Python(파이썬)] 팩토리얼(factorial) 구현 팩토리얼(계승; Factorial) 1부터 구하고자하는 양의 정수 N까지의 정수를 모두 곱한 것 팩토리얼 예시 3! = 3 * 2 * 1 = 6 5! = 5 * 4 * 3 * 2 * 1 = 120 파이썬 팩토리얼 구하는 3가지 방법 1. 재귀 2. for문 3. math.factorial 함수 1. 재귀함수를 통해서 팩토리얼 구현 방법 n! = n * (n-1) * (n-2) * … * 1 이러한 식으로 팩토리얼은 구성되어있기 때문에 n에서 하나씩 값을 뺀 후 다시 함수를 호출해서 곱하게 하면 된다. # 팩토리얼 재귀함수 def factorial_recursion(n): if n > 1: return n * factorial_recursion(n-1) else: return 1 # 출력값 >>> fact.. 2021. 7. 21.
[Python(파이썬)] 세트(set) 세트 (set) 중복된 데이터를 허용하지 않는다. 비순차 자료형, 가변 자료형 인덱스로 접근 불가하다. 항목들을 {} 로 감싸고 각각의 항목은 쉼표(,)로 구분한다. 집합 선언 방법 - set() # 빈 집합 선언 방법 >>> test = set() >>> type(test) >>> test >>> test = {'a','c','a','b','c','d','e'} # set은 중복 된 항목 제거됨 >>> test {'b', 'c', 'a', 'd', 'e'} # 항목 존재 유무 확인 - True, False로 반환 >>> 'a' in test True >>> 1 in test False >>> type(test) ※ 빈 집합은 {}로 선언 불가하다. {}로 선언하면 딕셔너리 타입이 생성된다. 반드시 se.. 2021. 7. 15.
[Python(파이썬)] filter(), enumerate() - 찾고자하는 item의 index 모두 찾기 index() 찾고자 하는 item의 index 반환 리스트에서 index()를 사용하면 찾고자하는 item의 index가 가장 작은 한개만 반환한다. >>> test = 'ABAABB' >>> test = list(test) >>> test.index('B') 1 찾고자 하는 item의 인덱스를 모두 찾아 반환하고 싶을 때 사용하는 방법은 2가지이다. filter() # test에서 'B'의 인덱스를 모두 반환 >>> list(filter(lambda x: test[x] == 'B', range(len(test)))) [1, 4, 5] >>> test2 = [1,2,3,4,1,1,6,2,1] # test2에서 값이 2인 인덱스를 모두 반환 >>> list(filter(lambda x: test2[x] .. 2021. 7. 12.
[Python(파이썬)] 문자, 아스키코드 변환 ord(문자) : 문자 -> 아스키코드 >>> ord('A') 65 >>> ord(' ') 32 >>> ord('a') 97 >>> ord('*') 42 chr(숫자) : 아스키코드 -> 문자 >>> chr(65) 'A' >>> chr(97) 'a' >>> chr(32) ' ' >>> chr(42) '*' 2021. 7. 12.