• 티스토리 홈
  • 프로필사진
    31514
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
31514
  • 프로필사진
    31514
    • 분류 전체보기 (106)
      • Book (66)
        • Learning SQL (9)
        • SQL 레벨업 (8)
        • 견고한 데이터 엔지니어링 (5)
        • 운영체제 (2)
        • 스파크 완벽 가이드 (9)
        • 파이썬 코딩의 기술 (29)
        • 분산 컴퓨팅 (4)
      • 개발 (24)
      • 기타 (10)
        • 출퇴근 공부 간단 정리 (7)
      • ELK (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
      • 31514의 이전 블로그는 여기로!
      등록된 공지가 없습니다.
    # Home
    # 공지사항
    #
    # 태그
    # 검색결과
    # 방명록
    • 포스트글 썸네일 이미지
      [BW 18] __missing__을 사용해 키에 따라 다른 디폴트 값을 생성하는 방법
      31514:
      만약 defaultdict 의 기본 값을 어떤 인자가 필요한 함수로 지정하면 다음과 같이 오류가 발생한다.from collections import defaultdictpath = "/"def open_file(file_path): try: return open(file_path, 'a+b') except OSError: print(f"경로를 알 수 없습니다: {file_path}") raisefiles = defaultdict(open_file)handle = files[path]handle.seek(0)file_data = handle.read()>>>TypeError: open_file() missing 1 required positional argu..
      • 2024-10-22 16:12:08
    • 포스트글 썸네일 이미지
      [BW 14] 복잡한 기준을 사용해 정렬할 때는 key 파라미터를 사용하라
      31514:
      다음과 같은 클래스가 있다고 가정해보고 tools 를 정의했다.class Tool: def __init__(self, name, weight): self.name = name self.weight = weight def __repr__(self): return f'Tool({self.name!r}, {self.weight})'tools = [ Tool('수준계', 3.5), Tool('해머', 1.25), Tool('스크류드라이버', 0.25), Tool('끌', 0.25),]tools 에 담긴 여러 인스턴스를 sort()를 통해 정렬할 수 있을까?비교 연산자를 지원하지 않는 오류가 발생한다.Traceback (most rece..
      • 2024-10-22 16:11:40
    • 포스트글 썸네일 이미지
      [BW 13] 슬라이싱보다는 나머지를 모두 잡아내는 언패킹을 사용하라
      31514:
      아래와 같은 코드는 ages의 요소가 추가되거나 삭제되었지만, 다른 줄에서 깜빡하고 수정하지 않으면 의도하지 않은 결과를 초래할 수 있다.ages = [20, 19, 18, 17, 16, 15, 14, 13]oldest, second_oldest, others = ages[0], ages[1], ages[2:]print(oldest, second_oldest, others)>>>20 19 [18, 17, 16, 15, 14, 13]따라서 별표 식을 사용해 모든 값을 담는 언패킹을 사용하면 좋다.ages = [20, 19, 18, 17, 16, 15, 14, 13]oldest, second_oldest, *others = agesprint(oldest, second_oldest, others)>>>20 1..
      • 2024-10-22 16:11:04
    • 포스트글 썸네일 이미지
      [BW 12] 스트라이드와 슬라이스를 한 식에 함께 사용하지 말라
      31514:
      스트라이드는 일정한 간격을 두고 슬라이싱을 할 수 있는 특별한 구문이다.arr = ['red', 'orange', 'yellow', 'green', 'blue']odds = arr[::2]evens = arr[1::2]print(odds)print(evens)>>>['red', 'yellow', 'blue']['orange', 'green']하지만 스트라이드는 종종 예기치 못한 동작이 일어나서 버그를 일으킬 수 있다. 유니코드 문자열을 UTF-8로 인코딩하고 스트라이드를 사용해 역으로 뒤집은 뒤, 다시 디코딩을 해보면 어떨까?word = '한글은 위대해'x = word.encode('utf-8')y = x[::-1]z = y.decode('utf-8')print(x)print(y)print(z)>>>Un..
      • 2024-10-22 16:10:32
    • 포스트글 썸네일 이미지
      [BW 11] 시퀀스를 슬라이싱하는 방법을 익혀라
      31514:
      리스트를 슬라이싱한 결과는 새로운 리스트이다. 대입에 슬라이스를 사용하면 원본 리스트에서 지정한 범위에 들어 있는 원소를 변경한다.그리고 대입 슬라이스와 대입되는 리스트의 길이가 같을 필요가 없다.arr = [1, 2, 3, 4, 5, 6, 7]print(arr)# [2:5]는 총 3개의 원소를 나타내지만, [8, 9]만 대입해도 상관없다.arr[2:5] = [8, 9]print(arr)>>>[1, 2, 3, 4, 5, 6, 7][1, 2, 8, 9, 6, 7]
      • 2024-10-22 16:09:51
    • 포스트글 썸네일 이미지
      [BW 10] 대입식을 사용해 반복을 피하라
      31514:
      대입식은 := 를 사용하고 왈러스 연산자라고도 부른다.만약 기존의 코드가 아래와 같을 때, count 변수는 if 문의 첫 번째 블록 안에서만 사용된다.count = fresh_fruit.get('레몬', 0)if count: print("레몬 있어요! " + str(count) + "개")else: print("없어요!")이를 다음과 같이 왈러스 연산자를 사용해서 수정할 수 있다.if count := fresh_fruit.get('레몬', 0): print("레몬 있어요! " + str(count) + "개")else: print("없어요!")만약 다음과 같은 while 문이 있다고 해도 왈러스 연산자를 사용하면 불필요한 변수 선언을 줄이고 가독성 있게 수정할 수 있다.# 수정 전..
      • 2024-10-22 16:08:59
    • 포스트글 썸네일 이미지
      [BW 9] for나 while 루프 뒤에 else 블록을 사용하지 말라
      31514:
      💡 파이썬에서는 루프가 반복 수행하는 내부 블록 바로 다음에 else 블록을 추가할 수 있다. 루프가 모두 실행되어도 else 블록은 실행된다.for i in range(3): print('Loop', i)else: print('Else Block!') >>>Loop 0Loop 1Loop 2Else Block!루프가 한 번도 실행되지 않아도 else 블록은 실행된다.while False: print('No')else: print('While Else block!')>>>While Else block!루프 중 break문을 만나서 빠져나오면 else 블록은 실행되지 않는다.for i in range(3): print('Loop', i) if i == 1: brea..
      • 2024-10-22 16:07:40
    • 포스트글 썸네일 이미지
      [BW 8] 여러 이터레이터에 대해 나란히 루프를 수행하려면 zip을 사용하라
      31514:
      문제 : 가장 긴 이름을 가진 동물을 찾아라.초기 세팅 코드longest_name = Nonemaxi = 0animals = ['outer', 'hamster', 'dog']counts = [len(n) for n in animals]배열 인덱스 i를 사용한 코드# 인덱스 i를 두 번 참조하여 시각적으로 잡음이 많다.for i in range(len(animals)): count = counts[i] if maxi >>hamsterzip을 사용한 코드for name, count in zip(animals, counts): if count > maxi: longest_name = name maxi = countprint(longest_name)>>>hamsterzi..
      • 2024-10-22 16:06:45
    조회된 결과가 없습니다.
    [1][2][3][4]
    스킨 업데이트 안내
    현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
    ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
    목차
    표시할 목차가 없습니다.
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바