Python 18

파이썬 입력값 sys.stdin.readline()으로 두 줄 입력 읽는 방법

너무 쉬워서 아무도 안알려준 sys.stdin.readline()으로 두 줄 입력 읽는 방법 a = a = sys.stdin.readline() b = sys.stdin.readline() print(a, b) result : 'a', 'b' ㅎㅎㅎㅎㅎ 이걸 몰라서 구글링 1시간 해맴. 구글링으로 열심히 파이썬 입력 두번째 줄 읽기 input second line 치고 있었음... 후 def sosu(num): for i in range(2, num): if num % i !=0: pass else: return 0 return 1 for i in range(2, len(c+1)): temp = sosu(i) if temp ==1: result += c[i-1] print (type(a))

파이썬 숫자 입력 받고 리스트로 순서 정렬하기

import sys a,b,c,d = map(int, sys.stdin.readline().split()) dis = [a,b,c,d] dis.sort() input이 한 줄에 띄어쓰기로 구분되어 있다고 하자. a,b,c,d로 둔 이유는 내가 입력할 숫자가 4개이기 때문이다. 이런건 문제가 준다. 안주면 이상한거다. 만약 map(int, 이거 안쓰면 숫자 inputdl 1, -3, 4, -8 이 어떻게 되나면 ['1', '-3', '4', '-8'] 이렇게 string 문자열로 나오게 된다. 나는 숫자를 다뤄야한다! 그래서 map(int, sys.stdin.readline().split())을 쓴다. 그리고는 어떻게 해야 숫자들을 큰 순서대로 혹은 작은 순서대로 정렬할 수 있을까 하는 것이다. 이 sor..

파이썬 여러줄 입력받기 문자열 숫자 따로 따로 인식하기

파이썬 알고리즘 풀 때 내가 제일 어려워 하는 것은 입력값 처리하는 것이다. 이 문제는 동명이인 알고리즘먼데이 구름 문제를 풀다가 입력값을 처리하기 위해 찾은 것들을 공유하기 위해 만들었다. 1. 나는 입력값 받는 건 input()밖에 모르는데? 맞다. 나는 백준이든 프로그래머스든 level1에서 벗어나지 않았던 몸. 보통 입력을 space단위로 받았었지 줄 단위로 받아본 적이 없다. 그래서 여러줄 받는 법을 몰랐다. import sys read = sys.stdin.readline().split() num = int.(read[0]) a = [sys.stdin.readline() for _ in range(num)] 먼저 여러줄 단위로 입력을 받기 위해서는 sys.stdin.readline()이 필요한..

list comprehension 리스트와 for문을 적게 사용하기

나의 못된 bad code X_train = [] text = list(df['특이사항list']) X_train = [mecab.nouns(text[i]) for i in range(len(text))] for i in range(len(text)): temp_X = [] temp_X = mecab.nouns(text[i]) # 토큰화, 명사만 가짐 X_train.append(temp_X) df["특이사항명사"] = X_train list comprehension을 만난 나의 이쁜 good code X_train = [mecab.nouns(df["특이사항list"][i]) for i in range(len(text))] df["특이사항명사"] = X_train 너무 단순해졌다. 이 모든 영광을 Data..

DataCamp에서 파이썬 까리하게 쓰는 법 배움

# Print the list created by using list comprehension best_list = [name for name in names if len(name) >= 6] print(____) # Create a new list of odd numbers from 1 to 11 by unpacking a range object nums_list2 = [*range(1,12,2)] print(nums_list2) # Rewrite the for loop to use enumerate indexed_names = [] for i, name in enumerate(names): index_name = (i,name) indexed_names.append(index_name) print(i..

python Dataframe boolean

# Import cars data import pandas as pd cars = pd.read_csv('cars.csv', index_col = 0) # Extract drives_right column as Series: dr dr = cars["drives_right"] # Use dr to subset cars: sel sel = cars[dr] # Print sel print(sel) 여기서 왜 dr이라는 pandas series를 선언해놓고 다시 dr dataframe에 넣었는지 이해가 안됬었다. 그 이유는 다음의 그림을 보면 이해가 된다. 그러니까 이미 drives_right라는 거는 True인지 False인지가 중요한 boolean이었고, 그렇게 그것만 챙겨서 다시 쓰는 것은 True인 값..

프로그래머스 lv1 파이썬 정답률 80% 이상

음양 더하기 def solution(absolutes, signs): answer = 0 for i in range(len(absolutes)): if signs[i] : #불리언이라서, 'false'가 아님 answer += absolutes[i] else: answer -= absolutes[i] return answer 핸드폰번호 가리기 리스트로 변경해서 풀라고 했는데 자꾸 안되었다. for문을 쓰는 것을 지양하고자 그저 구글링을 하였고 그 링크를 토대로 공부하겠다. 있는 값을 변경하려 했는데 그게 아니라 새로운 빈 깡통을 만들어서 넣는 것이건 같다. 내가 쓴 코드에서 자꾸 안되길래 확인을 위해서 print(list(phone_number)) 이걸 넣었더니 null이 떴다. 그것을 보고 아 이 코드..

프로그래머스 Lv 1 파이썬 콜라츠 추측 외 3문제

정수 제곱근 판별(88%) import math def solution(n): x = math.sqrt(n) if x % 1 == 0 : answer = (x+1)**2 else: answer = -1 return answer 자연수 뒤집어 배열로 만들기(88%) def solution(n): answer = list(str(n)) answer.reverse() return list(map(int, answer)) 문자열 내 p와 y의 개수 def solution(s): n = list(s) p = 0 y = 0 for i in range(len(n)): if 'p' in n[i] or 'P' in n[i]: p +=1 elif 'y' in n[i] or 'Y' in n[i]: y +=1 if p==y:..