return next(sum(numbers[:i + 1]) for i in range(len(numbers)) if sum(numbers[:i + 1]) > n) next(조건, 기본값)- 조건에 맞는 가장 첫번째 값을 반환함.- 조건에 반복자(iter) 를 넣으면 for 문처럼 사용할 수 있음. from itertools import accumulatedef find_first_exceeding_sum(numbers, n): return next((s for s in accumulate(numbers) if s > n), None) accumulate(리스트)- 리스트의 값의 누적합을 리스트로 반환함.- sum 의 반복 호출을 피할 수 있음.- for 문으로 + 연산을 반복하는 것보다 훨씬 빠른..
for 문을 한 줄로 작성할 수 있는 리스트 컴프리헨션에서for 문 안에 조건문을 넣고 싶을 수 있다.그 때 if 만 쓰거나 if - else 까지 넣고 싶을 수 있다. return [t for t, r in zip(todo_list, finished) if not r]# 틀린 문법return [t if not r else continue for t, r in zip(todo_list, finished)] if 만 쓸 경우에는 for 문 뒤에 적어준다.참고로, continue, pass 와 같이 반복문 건너뛰는 명령어는 list comprehension 에서 쓸 수 없다.else 문을 쓰려면 꼭 다른 반환되는 값이 필요하다. [ num if num % 2 == 0 else 0 for num in n..
# 가장 첫 번째 원소를 1번 원소라고 할 때, 홀수 번째 원소들의 합과 짝수 번째 원소들의 합 중 큰 값을 returndef odd_vs_even(num_list): odd, even = 0, 0 odd = sum(num for num in num_list[1::2]) even = sum(num for num in num_list[::2]) return max(odd, even)'''return max(sum(num_list[::2]), sum(num_list[1::2]))''''''JSnum_list.map((val, idx) => { !(idx % 2) ? even += val : odd += val })return odd > even ? odd : even;num_list.f..
# num_list의 첫 번째 원소부터 n 번째 원소까지의 모든 원소를 담은 리스트def to_n(num_list, n): return num_list[:n]'''JSreturn num_list.slice(0, n);Javareturn Arrays.copyOfRange(num_list,0,n);'''print(to_n([2, 1, 6], 1)) # [2] Arrays.copyOfRange(원본배열, 시작 인덱스, 끝 인덱스) 원본 배열의 특정 범위만큼 복사해서 새로운 배열로 반환.끝 인덱스가 원본 배열 길이보다 크면 이후의 값은 기본값으로 초기화됨. ex)String[] arr = new String[] ("a", "b", "c"};String[] copy = Arrays.copyOfRan..
문자열 리스트 str_list에는 "u", "d", "l", "r" 네 개의 문자열이 여러 개 저장되어 있습니다. str_list에서 "l"과 "r" 중 먼저 나오는 문자열이 "l"이라면 해당 문자열을 기준으로 왼쪽에 있는 문자열들을 순서대로 담은 리스트를, 먼저 나오는 문자열이 "r"이라면 해당 문자열을 기준으로 오른쪽에 있는 문자열들을 순서대로 담은 리스트를 return하도록 solution 함수를 완성해주세요. "l"이나 "r"이 없다면 빈 리스트를 return합니다. def left_right(str_list): for i, val in enumerate(str_list): if val == "l": return str_list[:i] if va..
너무 간단한 코드여서 한 문제만 올릴 수 없었다.다른사람 풀이에서 자바스크립트 코드도 겸사겸사 보고 있는데, num_list.push(...num_list.splice(0, n)); 이건 대체 무슨 코드냐고.. a배열.push(...b배열) a배열 끝에 b배열의 값을 하나씩 넣어줌... 없이 바로 배열을 넣으면 오류남. 배열.splice(시작인덱스, 범위, 추가) 원본 배열을 건드림.특정 범위를 삭제하거나, 새로 추가하거나, 기존 값을 대체할 수 있음.splice(시작) : 인덱스부터 전체 삭제splice(시작, 범위) : 인덱스부터 범위까지 삭제splice(시작, 0, 추가) : 인덱스 자리에 값 추가 -- splice(10, 0, a, b)splice(시작, 범위, 추가) : 인덱스부터 범위까지 삭..
get(key, default)딕셔너리에서 key 로 value 를 불러오는 함수. 값이 없으면 defalut 리턴. original.extend(new_list)리스트 합치기 -- 원본 리스트가 변함(+ 연산자 -- 합쳐진 리스트를 새로 반환) list(filter(lambda i: arr[i] == 2, range(len(arr)))) list에서 value 로 다중 index 찾기 '''리스트 (배열)# 56) 리스트 자르기# 57) 첫 번째로 나오는 음수# 58) 배열 만들기 3# 59) 2의 영역# 60) 배열 조각하기'''# 56) ===========================================================================def cut_list(..