[Python] 리스트에 숫자 추가할 때 주의사항
리스트에 숫자를 추가하는 방법 append 로 추가하기 이건 새로운 숫자를 추가하게 되므로 [0,0] 이 있었다면 1, 2를 추가했을 때 [0, 0, 1, 2] 가 된다 새로운 숫자를 아예 집어넣기 for 문 등을 통해서 리스트의 위치를 정해놓고 1, 2 를 추가한다면 (변경에 더 가까움) [0, 0] 에서 [1, 2] 가 된다.

리스트에 숫자를 추가하는 방법 append 로 추가하기 이건 새로운 숫자를 추가하게 되므로 [0,0] 이 있었다면 1, 2를 추가했을 때 [0, 0, 1, 2] 가 된다 새로운 숫자를 아예 집어넣기 for 문 등을 통해서 리스트의 위치를 정해놓고 1, 2 를 추가한다면 (변경에 더 가까움) [0, 0] 에서 [1, 2] 가 된다.
read = sys.stdin.readline read = sys.stdin.readline import sys read = sys.stdin.readline n = read() l = len(n) -1 ans = 0 for i in range(l): ans += (9*(10**i))*(i+1) ans += ((int(n)- (10**l))+1)*(l+1) print(ans) 이렇게 풀었을 때는 15를 입력했을 때 답이 -63이 나옴 시간 안에 풀기 위해서 이걸로 선택했는데 오답이 나옴 input() n = input() l = len(n) -1 ans = 0 for i in range(l): ans += (9*(10**i))*(i+1) ans += ((int(n)- (10**l))+1)*(l+1) pr..
둘 다 문자를 구분하기 위해서 사용하는 것이다. 하지만 사용한 후 출력 결과는 다르다. sep='' 출력할 각각의 요소를 구분한다. print("a", "b", "c", sep='') print("a", "b", "c", sep='|') print("a", "b", "c", sep='@') > abc a|b|c a@b@c print를 한 문장 사이에서만 구분자를 이용하여 각 문자를 구분한다. end='' 문자열의 끝 문자에 구분자를 넣어 각 문장을 잇는다. print를 할 때 기본으로는 자동 개행이 되는데, 이를 무시하고 구분자로 각 문장을 연이어서 출력하고 싶을 때 이용한다. print("a", "b", "c", sep='') print("a", "b", "c", sep='|') print("a", "..
set 집합이라고 생각. mutable 객체이다. 순서가 없다. 중괄호만으로 생성하는 것은 dict이고, set은 set 생성자를 이용해야 한다. s = set() 중복된 값은 자동으로 중복 제거된다. s= {1, 8, 2, 3, 1, 3, 7} >{1, 2, 3, 7, 8} set 연산자 add : 값을 추가할 때 사용한다. update : 여러 개의 값을 한꺼번에 추가할 때 사용한다. remove : 값을 제거할 때 사용한다. 만약 해당하는 값이 없다면 error 발생한다. discard : 값을 제거할 때 사용한다. 만약 해당하는 값이 없어도 error가 발생하지 않는다.
파이썬에서 언더스코어를 사용하는 경우 인터프리터에서 사용할 때 인터프리터에서 수행하면, 마지막에 실행한 결과값이 _ (언더스코어)에 저장된다. 값을 특별하게 지정하지 않고 싶을 때 보통 for 문을 돌릴 때나, 여러개의 값을 무시할 때 사용된다. 값이 특별하게 필요하지 않은 경우라면 언더스코어를 사용한다. for _ in range(1, n+1): 이면 값은 특별하게 필요없다. 숫자 자릿수를 구분할 때 10,000 10,000,000와 같이 실생활에서 숫자를 구분할 때 쉼표를 사용한다. 하지만 파이썬에서는 _ 와 같은 언더스코어를 통해 값을 구분하기도 한다. (언더스코어를 썼다고 값이 변하진 않는다ㅎ) 다른 파일에서 쉽게 불러오지 못하게 할 때 언더스코어로 시작하는 파이썬 파일 1개 일반 파일 1개 2에..
queue 한 쪽에서 삽입이 가능하고, 다른 한 쪽에서 삭제가 가능하다. FIFO(First In First Out) 형식의 선형 자료구조이다. 스택이랑 다른 점은, 스택은 top으로 정해놓은 부분에서만 삽입 및 삭제가 가능하지만 queue는 그렇게 정해놓은 부분이 아니더라도 양 끝에서 가능하다. front : 삭제 연산만 수행 (deQueue) rear : 삽입 연산만 수행 (enQueue) dequeue dequeue는 양방향인 queue이다. 스택과 큐의 연산을 모두 지원한다. 양쪽 모두 추가를 하거나 삭제를 할 수 있다. 파이썬에서는 리스트 대신 queue / dequeue를 쓰는 이유? → List보다 deque의 속도가 매우 빠르다! 속도 list = O(n) deque = O(1) deque..
람다 표현식 lambda x: x + 5 x를 받고, x에 5를 더해서 반환한다. 앞의 문자를 기준으로 정렬하기 bank = [[1, "국민"], [3, "농협"], [2, "신한"]] array.sort(key = lambda x:x[0]) > [[1, "국민"], [2, "신한"], [3, "농협"]] 뒤의 문자를 기준으로 정렬하기 bank = [[1, "국민"], [3, "농협"], [2, "신한"]] array.sort(key = lambda x:x[1]) > [[1, "국민"], [3, "농협"], [2, "신한"]] 조건에 따라서 정렬하기 첫 번째 인자는 오름차순 정렬 두 번째 인자는 내림차순 정렬이면? bank = [[1, "국민"], [2, "농협"], [2, "신한"]] array.sor..
key로 value 찾기 dict = {'a' : '11', 'b' : '22'} dict.get('a') >11 value로 key 찾기 [k for k, v in dict.items() if v=='22'] >['b'] key와 value 뒤집기(get으로 key 찾는 방법) conv = {v:k for k,v in dict.items()} conv.get('22') >'b' 가장 value 값이 큰 key 값 찾기 maxkey = max(이름, key = 이름.get) defaultdict from collections import defaultdict d = defaultdict(int) defaultdict의 인수로 int를 전달함 d는 항상 0으로 초기화됨 자동초기화로 인하여 별도 코드가 필요..