- 일반적으로 리스트를 출력하면 다음과 같다 ns = [n for n in range(3)] print(ns) 이것의 결과는 [0, 1, 2] 이것은 리스트라는 형태로 packing 된 상태이다 - 언패킹하여서 요소를 콤마(,) 로 구분지어서 풀어서 나열하는 것을 unpacking 이라고 한다 ns = [n for n in range(3)] print(ns[0], ns[1], ns[2]) print(*ns) 요소를 각각 나누어서 출력하는것을 언패킹하여 출력하는 것은 동일한 값을 갖는다 0 1 2 0 1 2 - 언패킹을 할때는 리스트, 튜플, 딕셔너리 등 앞에 *을 붙여주면 된다. a, b, *c, d = 1, 2, 3, 4, 5, 6 print(a, b, c, d)이렇게 대입하면 1 2 [3, 4, 5] 6
- append, del, remove pop 사용하지 않고 구현 - push: 리턴값이 없고 매개변수는 정수하나만 받는다. - pop: 매개변수는 없고 리턴값은 스택안에 가장 마지막에 들어온 값을 리턴 - 스택의 사이즈는 10개로 한정 class Stack: def __init__(self, size): self.size = size self.data = [0] * self.size self.cur = 0 def is_contain(self): return bool(self.cur) def push(self, n): if self.cur < self.size: self.data[self.cur] = n self.cur += 1 def pop(self): if self.is_contain(): self...
- append, del, remove pop 사용하지 않고 구현 - enqueue : 리턴값이 없고 매개변수는 정수하나만 받는다. - dequeue: 매개변수는 없고 리턴값은 큐안에 가장 먼저 들어온 값을 리턴 - 큐의 사이즈는 10개로 한정 class Queue: def __init__(self, size): self.size = size self.data = [0] * self.size self.idx = 0 def is_contain(self): return bool(self.idx) def enqueue(self, n): if self.idx < self.size: self.data[self.idx] = n self.idx += 1 def dequeue(self): if self.is_conta..
[generator expression] - generator 는 링크드 리스트 처럼 순차적으로만 접근이 가능하고 리스트나 튜플처럼 인덱싱으로 접근할 수 없다 ns = (n for n in range(10)) 이런식으로 생성할 수 있다. 단 이건 튜플 컴프리헨션이 아니다, 혼동 없길 바란다. print(ns.__next__()) print(ns.__next__()) print(ns.__next__())위의 코드로 순차적으로 접근 할 수 있다. for n in ns: print(n)이런식으로도 접근이 가능하다. 객체의 사이즈도 특징인데 list 와 동일 요소를 가지고 있는 경우 더 차이가 있다.import sys ns1 = (n for n in range(1000)) ns2 = [n for n in ran..
[사칙연산] - 두 숫자와 1개 연산자를 입력 받으면 계산의 결과를 리턴하는 함수를 작성한다. - 길이 3의 리스트 cmd 를 매개변수로 받는다. - 리스트의 요소는 모두 문자열이고, cmd[0], cmd[2] 숫자로 된 문자열로 되어있고, cmd[1] 는 연산자다. 예시) 입력> ["1", "+", "2"]결과 > 3 입력> ["1", "-", "2"]결과 > -1 입력> ["1", "*", "2"]결과 > 2 입력> ["1", "/", "2"]결과 > 0.5 추가로 0 으로 나눌때 경우, 예외처리와 계산 타이밍을 고민해 부자. lambdadef operator1(ns: list, ops="+-*/")->str: ns[0], ns[2] = float(ns[0]), float(ns[2]) fs = (la..
전체 리스트 ns 에 대해서ns = [i for i in range(10)] [인덱스 2~끝]print(ns[2:]) [뒤에서 부터 3개를 제외한]print(ns[:-3]) [뒤에서 3개만]print(ns[-3:]) [인덱스 2~4 까지] print(ns[2:5]) [맨앞에서 4개 , 그다음 3개 , 그다음 3개를 자른 다음에 이어 붙이면] print(ns[:4] + ns[4:7] + ns[7:]) [리스트 전체 역순으로 나열하면]print(ns[::-1]) [인덱스 3~5를 역순으로 나열]print(ns[5:2:-1])
[1~n 까지의 합 리턴]def foo(n): s = 0 for i in range(1, n+1): s += i return scomprehensiondef foo(n): return sum([i for i in range(1, n+1)])rangedef foo(n): return sum(range(1, n+1)) [1~n 까지 짝수의 합 리턴]def foo(n): s = 0 for i in range(1, n+1): if i % 2 == 0: s += i return scomprehensiondef foo(n): return sum([i for i in range(1, n+1) if i % 2 == 0]) [1~n 까지 홀수의 합 리턴]def foo(n): s = 0 for i in range(1, n..
리스트를 생성하는 생성하는 컴프리헨션을 리스트 컴프리헨션이라고 한다. ns = [] for n in range(10): ns.append(n) 위의 코드를 컴프리헨션으로 작성 ns = [n for n in range(10)] 조건문을 적용할 수도 있다. ns = [] for n in range(10): if n % 2: ns.append(n) 위를 컴프리헨션으로 작성하면 ns = [n for n in range(10) if n % 2] 다중 for 문과 if 문을 적용할수도 있다. items = [] for c in ["a", "b", "c"]: for j in range(10): if j < 5 and j % 2: items.append((c, j)) 컴프리헨션으로 작성하면 items = [(c, j)..
Thread 를 상속 받아서 재정의 해주자 self._return 을 join 에서 리턴 해주기 위해서 run 함수에서 _target 의 리턴값을 _return 에 정의 하자 그리고 join 함수에서 _return 을 리턴하자. join() 함수를 사용해서 순서를 강제하는 경우에만 가능하다. import threading import time from threading import Thread def foo(t): i = 0 while i
아래와 같이 출력했을 때 count_prime 이 아니라 wrapper 가 출력된다. 데코레이션으로 속성이 바뀌었다. def get_delay(tp): def decorator(func): def wrapper(*args, **kwargs): import time start = time.time() r = func(*args, **kwargs) print("{}(): delay={}".format(func.__name__, tp(time.time()-start))) return r return wrapper return decorator def is_prime(n): for i in range(2, n): if not n % i: return False return True @get_delay(float..
- Total
- Today
- Yesterday
- gitlab
- 이미지 비교
- pycrypto
- admin.py
- 파이썬 독학
- Python
- 파이썬 입문
- 면접정답
- django chatbot
- Tistory
- gitignore
- 장고 플러스친구 자동응답
- chatbot
- 면접답변
- virtualenv
- GIT
- 문과 코딩
- 모바일 스킨 적용
- django
- 문서 비교
- 플러스친구 자동응답
- 엑셀 비교
- 파이썬 프로그래밍
- 파이썬
- 장고 카톡 자동응답
- PuTTYGen
- 장고
- wsgi
- 파이썬 강좌
- 모바일 테마 적용
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |