[빈 리스트 생성]ns = [] ns = list() [요소 추가]ns.append(1) ns += [1] ns = [*ns, 1] [마지막 인덱스 요소 삭제]ns.pop(-1) ns = ns[:-1] del ns[-1] ns.remove(ns[-1]) [첫 번째 인덱스 요소 삭제]ns.pop(0) ns = ns[1:] del ns[0] ns.remove(ns[0]) [첫번째 인덱스 요소 -1로 변경]ns[0] = -1 ns = [-1, *ns[1:]] ns = [-1] + ns[1:] [리스트 초기화]ns.clear() ns = [] ns = list() [새로운 복사본 만들기]copy = [] for n in ns: copy.append(n) copy = [*ns]슬라이싱을 이용한 방법이 가장 빠름c..
- 다음과 같은 간단한 함수가 있다.def foo(a, b): return a+b, a*b 이런 경우에는 람다라는 익명 함수로 표현하면f = lambda a, b: (a+b, a*b) print(f(2, 3)) 매개 변수를 미리 넣어서 표현하면f = (lambda a, b: (a+b, a*b)) (2, 3) print(f) 람다는 한번 사용하고 말 함수를 한줄로 간결하게 표현할 수 있다. 또한 콜백같이 lazy 하게 동작할 경우에도 유용하다.
- 함수에 매개변수들을 정해진 개수를 입력받지 않고 가변적으로 받는 방법을 알아보자 - 이것을 보기전에 packing, unpacking 을 먼저 알아보기 바란다 def foo(*args, **kwargs): print(*args) print(*kwargs) foo(1, 2, 3, age=10, name="kim") 위와 같이 튜플과 딕셔너리를 가변적으로 받으면 개수에 상관없이 받을수 있다(아무 인자값도 없어도 된다) 결과는 다음과 같이 나온다 1 2 3 age name
- 일반적으로 리스트를 출력하면 다음과 같다 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..
[비상업적 라이센스 연장] 비상업적으로 사용만을 한다고 연장 신청을 하면 영업일 기준 1~3일 안에 연장을 해줍니다. 비상업적 용도라는게 로그를 통해 증명되면 영구히 무료로 사용가능하다고 합니다. 팀뷰어 메뉴에 피드백하기, 혹은 만료되었을때 기간연장하기를 누른다. 그리고 비상업적 이용이라고 밝히고 로그파일을 첨부한다. 로그 파일은 윈도우키 + r > appdata > local or roaming 두개의 폴더아래 teamviewer 폴더 아래 여기 아래에서 .log 파일일 것이다. [프로그램 이용하여 리셋] 팀뷰어를 쓰다가 갑자기 라이센스가 만료 되었다고 나와서 난감한 적이 있다. 개인도 일정 이상 사용하면 구매를 해야 하는거 같다 이때 두가지를 해야 한다. 설정 제거 까지 완전히 삭제한 후 맥 어드레스..
[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..
-정규식으로 코드가 간단하지만 성능이 느리다. import re def is_bracket(s, p=""): while s != p: p = s s = re.sub(r"[\(][^\(\)]*[\)]", "", s) return not ("(" in s or ")" in s) -스택을 이용한 빠른 방법def is_bracket(s): sk = [] for c in s: if c == "(": sk.append(c) elif c == ")": if bool(sk): sk.pop() else: return False return not bool(sk)
- Total
- Today
- Yesterday
- 파이썬 입문
- chatbot
- 이미지 비교
- 면접정답
- 장고
- GIT
- gitlab
- 엑셀 비교
- gitignore
- django chatbot
- 플러스친구 자동응답
- 파이썬 독학
- 장고 플러스친구 자동응답
- 파이썬
- 모바일 스킨 적용
- 장고 카톡 자동응답
- pycrypto
- 문서 비교
- 면접답변
- Python
- PuTTYGen
- virtualenv
- 파이썬 프로그래밍
- django
- 파이썬 강좌
- wsgi
- 모바일 테마 적용
- 문과 코딩
- Tistory
- admin.py
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |