[스터디][멋사 AI]

티나(Tina)·2022년 10월 6일

멋사AI

목록 보기
12/41

sort()와 sorted()의 차이


list.sort(*, key=None, reverse=False)
리스트의 항목들을 제자리에서 정렬합니다 (인자들은 정렬 커스터마이제이션에 사용될 수 있습니다.)

  1. 리스트만 가능
  2. 리스트를 직접 정렬하고 None 리턴

sorted(iterable, /, *, key=None, reverse=False)

iterable 의 항목들로 새 정렬된 리스트를 돌려줍니다.

  1. 리스트, 문자열, 튜플, 딕셔너리 등 반복 가능한 자료형 모두 가능
  2. 기존 리스트를 복사해서 새로 만들어 반환 -> sort() 함수보다는 다소 느림
  3. 기존 리스트에는 영향을 주지 않는다.
sorted([5, 2, 3, 1, 4])
# -> [1, 2, 3, 4, 5]

a = [5, 2, 3, 1, 4]
a.sort()
a
# -> [1, 2, 3, 4, 5]

list.sort() 메서드를 사용할 수도 있습니다. 리스트를 제자리에서 수정합니다 (그리고 혼동을 피하고자 None을 반환합니다). 일반적으로 sorted()보다 덜 편리합니다 - 하지만 원래 목록이 필요하지 않다면, 이것이 약간 더 효율적입니다.

sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})
# -> [1, 2, 3, 4, 5]

또 다른 점은 list.sort() 메서드가 리스트에게만 정의된다는 것입니다. 이와 달리, sorted() 함수는 모든 이터러블을 받아들입니다.

참조: https://docs.python.org/ko/3/tutorial/datastructures.html#more-on-lists
https://dasom.net/118


with 구문 이해하기


try…except…finally 사용 패턴을 편리하게 재사용할 수 있도록 캡슐화 한것.

with EXPRESSION as TARGET:
    SUITE

# 위의 코드와 아래 코드가 동일하다.

manager = (EXPRESSION)
enter = type(manager).__enter__
exit = type(manager).__exit__
value = enter(manager)
hit_except = False

try:
    TARGET = value # 1. 여기서 enter
    SUITE
except:
    hit_except = True
    if not exit(manager, *sys.exc_info()):
        raise
finally:
    if not hit_except:
        exit(manager, None, None, None)
        # 2. 문제 없을 시 끝날 때 exit

with 문을 사용 시 미리 지정된 __enter__ 함수와 __exit__ 함수가 자동으로 실행된다.

원하는 클래스를 만들어서 open 함수를 사용 할 수 도 있다.


# 1. 클래스 만들기
class PrintNumber:
    # 사용할 자원 생성 및 획득.
    def __enter__(self):
        print("start.")
        return self

    # 자원 사용.
    def print_number(self, num):
        print(f"Number: {num}")

    # 자원 반납 및 후처리.
    def __exit__(self, exc_type, exc_val, exc_tb):
        print("end.")

# 2. with 구문에서 사용해보기
with PrintNumber() as pn:
    pn.print_number(42)
    pn.print_number(10)


### 결과
> start.
> Number: 42
> Number: 10
> end.

다중으로도 쓸 수 있다.
아래 세개가 동일하게 작동한다.

# 1
with A() as a, B() as b:
    SUITE

# 2
with A() as a:
    with B() as b:
        SUITE

# 3
with (
    A() as a,
    B() as b,
):
    SUITE 

참조:
https://velog.io/@hyungraelee/Python-with
https://docs.python.org/ko/3/reference/compound_stmts.html#with


마크다운에서 수학식 사용하기

  • LaTex 기호로 수학식을 표현 할 수 있다.

$ 이 사이에 공식을 쓰면 된다. $

$ f(x) = ax^2 + bx + c $
$ \hat y = y_{sample} f(x) = a \times x^2 + b \times x + c $

그러면 Markdown 에서 이렇게 표기된다.

LaTex 기호 자체를 찾기 힘들다면 LaTex 기호 찾기 에서 그림을 그리면 찾을 수 있다.

어떤 기호를 써야 하는지 알려준다. #sum 을 사용해보자.

$ Sum(xn) = \sum^n{i=0} x_i $

해당 기호가 잘 표기 되는걸 볼 수 있다!

그리고 이미지 링크 앞에 ! 를 붙이면 미리보기를 띄울 수 있다고 한다.
![](이미지링크)
이렇게!!

profile
열심히 사는 중

0개의 댓글