반응형

프로그래밍/[ Python ] 39

[Python] JSON 처리

Python에서 JSON(JSON(JavaScript Object Notation))은 데이터를 구조적으로 표현하기 위한 포맷으로, 웹 애플리케이션에서 자주 사용됩니다. Python에서 JSON을 처리하는 방법은 json 모듈을 사용하여 쉽게 다룰 수 있습니다. 이 모듈을 통해 JSON 데이터를 파싱하거나 직렬화(serialize)할 수 있습니다. 다음은 Python을 활용한 JSON 처리 방법 3가지와 예시입니다:1. JSON 문자열을 Python 객체로 변환 (JSON 파싱)json.loads() 함수를 사용하여 JSON 형식의 문자열을 Python 객체로 변환할 수 있습니다. 이 함수는 JSON 문자열을 파싱하여 Python의 데이터 타입(딕셔너리, 리스트 등)으로 변환합니다.import json#..

[Python] 예외처리 try, except

파이썬에서 예외 처리(Exception Handling)는 프로그램 실행 중 발생할 수 있는 오류를 처리하기 위한 기법입니다. 예외 처리 덕분에 오류가 발생해도 프로그램이 비정상적으로 종료되지 않고, 지정된 대체 작업을 수행하거나 오류 메시지를 사용자에게 적절히 제공할 수 있습니다.기본적인 예외 처리 구문파이썬에서 예외 처리는 try, except, else, finally 구문을 사용합니다.try: 예외가 발생할 수 있는 코드를 작성합니다.except: 예외가 발생했을 때 처리할 코드를 작성합니다.else: 예외가 발생하지 않았을 때 실행할 코드를 작성합니다.finally: 예외 발생 여부와 상관없이 항상 실행되는 코드를 작성합니다. 기본 구조 try: # 예외가 발생할 수 있는 코드except ..

[Python] map

map() 함수는 주어진 함수를 iterable의 각 항목에 적용하여 새로운 iterable을 반환하는 함수입니다. 특히 반복문을 사용할 때 보다 간결한 코드로 변환할 수 있어 유용합니다. map() 함수map() 함수는 다음과 같은 구문을 가집니다:map(function, iterable)  function: 각 항목에 적용할 함수.iterable: 반복 가능한 객체(리스트, 튜플 등).map() 함수는 function을 iterable의 모든 요소에 적용하고, 그 결과를 새로운 iterable로 반환합니다. 결과는 map 객체로 반환되므로, 이를 리스트나 다른 자료형으로 변환해야 사용할 수 있습니다.   예시 1: 리스트의 모든 값을 제곱하기map() 함수와 lambda 함수를 사용하여 리스트의 모든..

[Python] List Comprehension

파이썬에서 자주 사용하는 기능 중 하나는 리스트 컴프리헨션(List Comprehension) 입니다. 이 기능은 기존의 리스트를 기반으로 새로운 리스트를 간결하고 효율적으로 생성할 수 있게 해줍니다.# 1부터 10까지의 숫자 중 짝수만 추출하여 새로운 리스트 생성numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]even_numbers = [x for x in numbers if x % 2 == 0]print(even_numbers) # 출력: [2, 4, 6, 8, 10] 이 코드에서는 x for x in numbers if x % 2 == 0를 사용하여 리스트의 각 요소를 순회하면서 짝수인 값만 필터링하여 새로운 리스트를 만듭니다. 리스트 컴프리헨션을 사용하면 for문을 이용..

[Python] Files (파일 관련)

이번 포스팅에서는 파이썬으로 파일을 읽고, 쓰기 등 간단한 파일 관련된 코드에 대해 정리 해보겠습니다. 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 활용법

안녕하세요, 오늘은 정말 간단한 python에서 pass, continue, break 문법 각각의 역할과 활용법에 대해서 정리해보겠습니다. 쉽게 정리하자면, pass : 아무 동작도 하지 않습니다. 반복문에서 아무런 영향을 끼치지 않습니다. continue : 반복문에서 다음 loop로 건너뛰면서 loop는 지속됩니다. break : 반복문을 멈추고 loop 밖으로 나갑니다. 말로 설명하는 것보다 쉽게 이해할 수 있도록 아래 예시로 정리하겠습니다. pass는 왼쪽의 결과에서 볼 수 있듯이 코드에 아무런 영향을 끼치지 않습니다. 따라서 pass는 주로 조건문에서 별다른 행동이 필요하지 않을 때, 또는 class 생성시 초기에 별다른 값이 없을때 전체 코드 동작을 확인하기 위해 임시적으로 활용하기도 합니다..

[연결 리스트] 두 수의 덧셈

* leetcode 2. Add Two Numbers Q. 역순으로 저장된 연결 리스트의 숫자를 더하라 # 입력 (2 -> 4 -> 3) + (5 -> 6 -> 4) # 출력 7 -> 0 -> 8 # 설명 342 + 465 = 807 풀이. 전가산기 구현 def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: root = head = ListNode(0) carry = 0 while l1 or l2 or carry: sum = 0 # 두 입력값의 합 계산 if l1: sum += l1.val l1 = l1.next if l2: sum += l2.val l2 = l2.next # 몫(올림)과 나머지(값) 계산 carry, val = divmod(..

[연결 리스트] 역순 연결 리스트

* leetcode 206. Reverse Linked List Q. 연결 리스트를 뒤집어라. # 입력 1->2->3->4->5->Null # 출력 5->4->3->2->1->Null 풀이 1. 반복 구조로 뒤집기 def reverseList(head: ListNode) -> ListNode: node, prev = head, None # node.next를 이전 prev 리스트로 계속 연결하면 뒤집어진 연결 리스트를 얻을 수 있다. while node: next, node.next = node.next, prev prev, node = node, next return prev ### 초기화 node = 1->2->3->4->5->None prev = None while [1] next = 2(->3->..

[연결 리스트] 두 정렬 리스트의 병합

* leetcode 21. Merge Two Sorted Lists Q. 정렬되어 있는 두 연결 리스트를 합쳐라 # 입력 1->2->4, 1->3->4 # 출력 1->1->2->3->4->4 풀이 1. 재귀 구조로 연결 def mergeTwoLists(l1: ListNode, l2: ListNode) -> ListNode: # 작은 값이 왼쪽에 오게 if (not l1) or (l2 and l1.val > l2.val): l1, l2 = l2, l1 # next는 그 다음 값이 엮이도록 재귀 호출 if l1: l1.next = mergeTwoLists(l1.next, l2) return l1

[연결 리스트] 팰린드롬 연결 리스트

* 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 ..

반응형