[Python] 내가 몰랐던 파이썬 기초 문법 지식들

Minjeong Park·2022년 3월 10일
0

Python

목록 보기
6/7

→ 계속 업데이트
📚 Reference 이것이 취업을 위한 코딩 테스트다

📃 List 리스트

크기가 N이고, 모든 값이 0인 1차원 리스트 초기화

N = 5
a = [0] * N # a = [0, 0, 0, 0, 0]

리스트 컴프리헨션

리스트를 초기화 하는 방법 중 하나. 대괄호 안에 조건문과 반복문을 넣는 방식으로 리스트를 초기화.

# 0부터 19까지의 수 중에서 홀수만 포함하는 리스트
array = [i for i in 
range(20) if i % 2 == 1]

2차원 리스트를 초기화할 때 매우 효과적으로 사용한다.
2차원 리스트를 초기화할 때는 반드시 리스트 컴프리헨션을 사용해야 한다.

예로 MNM * N 크기의 리스트를 0으로 초기화 한다고 하자. 아래와 같은 크기가 될 것이다.

M = 3
N = 4
array = [[0]*N for _ in range(M)] # [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

언더바 _ 의 역할

단순히 반복만 수행하고, 반복 index는 중요하지 않을 때 _ 를 사용한다.
예로, 1부터 5까지 더할 땐 index가 중요하지만,
단순히 "Hello"를 5번 반복할 땐 index가 중요하지 않다.

리스트 메서드

  • append() : O(1)
  • sort() : O(NlogN)
    • sort(reverse = True) : : O(NlogN)
  • insert(index, value) : : O(N)
  • count(value) : O(N)
  • remove(value) : O(N)

remove(value) 남발하지 않고 특정 원소 제거하기

remove(value)는 시간 복잡도가 O(N)으로, 시간 초과가 나기 쉽다.
다음 코드로 특정원소를 제거한다.

a = [1,2,3,4,4,4,4,5,6,7,7,7,7,7,7,8,9]
remove_set = {4,5,6,9}

array = [i for i in a if i not in remove_set] # [1, 2, 3, 7, 7, 7, 7, 7, 7, 8]
profile
아자아잣

0개의 댓글