PYTHON

이번 포스팅에서는 파이썬으로 파일을 읽고, 쓰기 등 간단한 파일 관련된 코드에 대해 정리 해보겠습니다. Reading 파일 읽기는 with open 구문으로 읽고자하는 파일을 지정한 후 read() 구문을 이용해서 할 수 있습니다. with open('file.txt', 'r') as file: content = file.read() print(content) Writing 파일 읽기와 마찬가지로 작성하고자 하는 파일 명을 with open 구문으로 저정한 후 write()를 활용하면 됩니다. with open('file.txt', 'w') as file: file.write('Hello!') Appending 이미 있는 파일에 붙여쓰기를 하기 위해서는 'a' 옵션으로 파일을 지정한 후 write()를 ..
안녕하세요, 오늘은 정말 간단한 python에서 pass, continue, break 문법 각각의 역할과 활용법에 대해서 정리해보겠습니다. 쉽게 정리하자면, pass : 아무 동작도 하지 않습니다. 반복문에서 아무런 영향을 끼치지 않습니다. continue : 반복문에서 다음 loop로 건너뛰면서 loop는 지속됩니다. break : 반복문을 멈추고 loop 밖으로 나갑니다. 말로 설명하는 것보다 쉽게 이해할 수 있도록 아래 예시로 정리하겠습니다. pass는 왼쪽의 결과에서 볼 수 있듯이 코드에 아무런 영향을 끼치지 않습니다. 따라서 pass는 주로 조건문에서 별다른 행동이 필요하지 않을 때, 또는 class 생성시 초기에 별다른 값이 없을때 전체 코드 동작을 확인하기 위해 임시적으로 활용하기도 합니다..
* leetcode 234. Palindrome Linked List Q. 연결리스트가 팰린드롬 구조인지 판별하라. # 입력 1->2 # 출력 false # 입력 1->2->2->1 # 출력 true 풀이 1. 리스트 변환 # 연결 리스트를 파이썬의 리스트로 변환시켜 풀이 def isPalindrome(head: ListNode) -> bool: q: List = [] if not head: return True node = head # 리스트 변환 while node is not None: q.append(node.val) node = node.next # 판별 while len(q) > 1: if q.pop(0) != q.pop(): # 인덱스를 지정하여 처음과 끝 값을 비교 return False ..
* leetcode 561. Array Partition 1 Q. n개의 페어를 이용한 min(a, b)의 합으로 만들 수 있는 가장 큰 수를 출력하라. # 입력 [1, 4, 3, 2] # 출력 [4] # 설명 n은 2가 되면, 최대 값은 4이다. min(1, 2) + min(3, 4) = 4 풀이 1. 오름차순 풀이 최대 min()을 만들기 위해서 내림차순으로 배열을 만들면 항상 최대 min() 페어를 만들 수 있다는 점을 활용한다. 이때, 문제에서 배열 입력값은 2n개일 것이기 때문에 오름차순으로도 같은 결과가 나온다. def arrayPairSum(nums: List[int]) -> int: sum = 0 pair = [] nums.sort() for n in nums: pair.append(n) ..
* leetcode 15. 3Sum Q. 배열을 입력받아 합으로 0을 만들 수 있는 3개의 앨리먼트를 출력하라 # 입력 nums = [-1, 0, 1, 2, -1, -4] # 출력 [ [-1, 0, 1], [-1, -1, 2] ] 풀이 1. 브루트 포스로 계산 # 3개의 포인터를 이용하여 모두 더해서 0이 되는 값들을 찾는다. def threeSum(nums: List[int]) -> List[List[int]]: results = [] nums.sort() # n^3 반복 for i in range(len(nums) - 2): # 중복값 제거 if i > 0 and nums[i] == nums[i - 1]: continue for j in range(i + 1, len(nums) - 1): if j >..
* leetcode 5. Longest Palindrome Substring Q. 가장 긴 팰린드롬 부분 문자열을 출력하라. # 입력 "babad" # 출력 "bab" or "aba" 풀이 1. 중앙을 중심으로 확장하는 풀이 def logestPalindrome(s: str) -> str: def expand(left: int, right: int) -> str: # 팰린드롬 여부를 체크하며 포인터 확장 while left >= 0 and right
파이썬에서 슬라이싱(slicing)이란, 연속적인 객체(리스트, 튜플, 문자열)들에 대해서 특정 범위를 지정 선택해서 부분 객체들을 가져오는 기법을 의미합니다. 즉 연속적인 객체의 일부분을 복사해서 가져온다고 생각하면 됩니다. 기본 형태 만약 temp라는 리스트가 있고 다음과 같은 값을 갖고 있다고 할 때, 아래와 같은 형태로 슬라이싱 할 수 있습니다. temp = [1, 2, 3, 4, 5] # 슬라이싱 기본 형태 # temp[start:end:step] start : 시작 위치 end : 끝 위치 (포함 x) step : stride라고도 하며 몇개씩 가져올지 정할 수 있습니다. (옵션) 예제 temp[1:] # [2, 3, 4, 5] temp[:-1] # [1, 2, 3, 4] temp[2:4] #..
이번 포스트에서는 정말 간단하게 python에 pickle을 활용하여 데이터를 저장하고, 저장된 데이터를 불러오는 코드를 알아보겠습니다. pickle은 파이썬의 모든 객체(object)에 대해서 있는 그대로 저장할 수 있는 모듈입니다. pickle은 객체를 바이너리 파일에 저장하기 때문에 아래와 같이 파일을 읽을 때 'wb', 'rb' 처럼 바이너리 형식을 사용해야 합니다. pickle.dump / pickle.load import pickle temp_dict = {'name': 'S', 'id': 1} # 데이터 저장 with open('filename.pkl', 'wb') as f: pickle.dump(temp_dict, f, protocol=pickle.HIGHEST_PROTOCOL) # 데이터..
sssssein
'PYTHON' 태그의 글 목록