2023-04-21 TIL

0v0baek·2023년 4월 21일
0

TIL

목록 보기
35/92

[Python] 언더스코어(_)

출처 블로그

파이썬에서 언더스코어_는 여러가지 역할을 한다.

위 블로그에 따르면 크게 5가지 정도의 용례가 있는 듯 하지만, 우선 지금 내 수준에서 가장 많이 사용 될 세 가지를 정리해보고자 한다.

변수 네이밍에 쓰임

i_am_happy = 'i am happy'
hello_world = 'hello world'

가장 대표적인 경우다.

언더스코어_는 변수 네이밍을 할 때 단어 사이를 이어준다.
(스네이크 표기법)

파이썬 인터프리터의 마지막 실행된 값

언더스코어_는 파이썬 인터프리터에서 가장 마지막 실행된 값을 저장해둔다.

값을 무시할 때

언더스코어_는 특정 값을 무시하기 위해서 쓰이기도 한다.

# 언패킹시 특정값을 무시한다.
a, _, b = (0, 1, 2) # a = 0, b = 2

# 인덱스를 무시한다.
for _ in range(5):
    print('hello!')

이런 식으로 무시하고 싶은 위치에 언더스코어_를 넣어주자.

[programmers] 행렬의 덧셈

문제

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다.
2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.

내 풀이

def solution(arr1, arr2):
    answer = [[] for _ in range(len(arr1))]
    for i in range(len(arr1)):
        for j in range(len(arr1[i])):
            answer[i].append(arr1[i][j]+arr2[i][j])
    return answer

먼저, IndexError: list index out of range를 방지하기 위해, 리스트의 길이에 맞춰서 answer안에 빈 리스트를 for문으로 생성해준다.

그런 뒤, 중첩 된 for문으로 각 리스트의 요소들을 하나씩 더해서 answerappend해, return한다.

근데 이렇게 하면 for문이 너무 많아서 그닥 시간복잡도 측면에서 좋은 코드라는 생각이 들지 않는다...

상대방의 풀이

def solution(arr1, arr2):
    for i in range(len(arr1)):
        for j in range(len(arr1[0])):
            arr1[i][j] += arr2[i][j]
    return arr1

와...
그냥 arr1 자체에 값 하나씩을 더해주면 된다.
이러면 굳이 빈 리스트를 생성해줄 필요도 없고, 이미 주어진 값 arr1 자체를 리턴해버리면 된다.

내 코드에서 부족했지만 어떻게 고쳐야 할지 모르겠는 부분을, 상대방의 코드를 보면서 공부해가면 조금 더 이해가 잘 된다.
이렇게 보는 안목을 조금씩 넓혀가다보면 좀 더 컴퓨팅적 사고(...)에 도달할 수 있겠지.

[Postman] postman에서 delete method가 잘 작동하지 않는 경우

DELETE 메소드를 사용해 send 했는데, 게시글은 삭제가 되지 않고 response200으로 오고있다.

뭐가 문제냐!!!!

❗ 끝에 / 안붙여줬잖아!!! ❗

끝에 제대로 / 를 붙여주지 않으면 메소드가 제대로 작동이 안된다... 유의하자!!!!

profile
개발 공부 하는 비전공자 새내기. 꾸준히 합시다!

0개의 댓글