[이코테] 리스트, 입출력

19211 단어 이코테이코테

리스트 관련 기타 메서드

함수명사용법설명시간 복잡도
append()변수명.append()리스트에 원소를 하나 삽입할 때 사용한다O(1)
sort()변수명.sort()기본 정렬 기능으로 오름차순으로 정렬한다.O(NlogN)
reverse()변수명.reverse()리스트의 원소의 순서를 모두 뒤집어 놓는다.O(N)
insert()insert(삽입할 위치 인덱스, 삽입할 값)특정한 인덱스 위치에 원소를 삽입할 때 사용한다.O(N)
count()변수명.count(특정 값)리스트에서 특정한 값을 가지는 데이터의 개수를 셀 때 사용한다.O(N)
remove()변수명.remove(특정 값)특정한 값을 갖는 원소를 제거하는데, 값을 가진 원소가 여러 개면 하나만 제거한다.O(N)

리스트 컴프리헨션

코드 1: 리스트 컴프리헨션

# 0부터 9까지의 수를 포함하는 리스트
>>> array = [i for i in range(20) if i % 2 == 1]

>>> print(array)
[1,3,5,7,9,11,13,15,17,19]

코드 2: 일반적인 코드

# 0부터 9까지의 수를 포함하는 리스트
>>> array=[]
>>> for i in range(20):
>>> 	if i % 2 == 1:
>>>		 	array.append(i)

>>> print(array)
[1,3,5,7,9,11,13,15,17,19]
  • 리스트 컴프리헨션은 2차원 리스트를 초기화할 때 효과적으로 사용될 수 있다.

  • 특히 N X M 크기의 2차원 리스트를 한 번에 초기화 해야 할 때 매우 유용하다.

    • 좋은 예시: array= [[0]*m for _in range(n)]
  • 만약 2차원 리스트를 초기화할 때 다음과 같이 작성하면 예기치 않은 결과가 나온다.

    • 잘못된 예시: array = [[0]m] n
    • 위 코드는 전체 리스트 안에 포함된 각 리스트가 모두 같은 객체로 인식된다.

좋은 예시

# N X M 크기의 2차원 리스트 초기화
>>> n = 4
>>> m = 3
>>> array = [[0] * m for _ in range(n)]
>>> print(array)
[[0,0,0],[0,0,0],[0,0,0],[0,0,0]]

잘못된 예시

# N X M 크기의 2차원 리스트 초기화
>>> n = 4
>>> m = 3
>>> array = [[0] * m] * n
>>> print(array)
[[0,0,0],[0,0,0],[0,0,0],[0,0,0]]

>>> array[1][1] = 5
>>> print(array)
[[0,5,0],[0,5,0],[0,5,0],[0,5,0]]

리스트에서 특정 값을 가지는 원소를 모두 제거하기

>>> a = [1,2,3,4,5,5,5]
>>> remove_set = {3,5} #집합 자료형

# remove_list에 포함되지 않은 값만을 저장
>>> result=[i for i in a if i not in remove_set]
>>> print(result)
[1,2,4 ]

자주 사용되는 표준 입력 방법

  • input() 함수는 한 줄의 문자열을 입력 받는 함수이다.
  • map() 함수는 리스트의 모든 원소에 각각 특정한 함수를 적용할 때 사용한다.
  • 예시) 공백을 기준으로 구분된 데이터를 입력 받을 때는 다음과 같이 사용한다.
    • list(map(int,input().split()))
  • 예시) 공백을 기준으로 구분된 데이터의 개수가 많지 않다면, 단순히 다음과 같이 사용한다.
    • a, b, c = map(int, input().split())

빠르게 입력 받기

  • 사용자로부터 입력을 최대한 빠르게 받아야 하는 경우가 있다.
  • 파이썬의 경우 sys라이브러리에 정의되어 있는 sys.stdin.readline() 메서드를 이용한다.
    • 단, 입력 후 엔터(Enter)가 줄 바꿈 기호로 입력되므로 rstrip() 메서드를 함께 사용한다.
  • 실제로 이진탐색, 정렬, 그래프 관련 문제에서 자주 사용된다.
>>> import sys

# 문자열 입력 받기
>>> data = systdin.readline().rstrip()
>>> print(data)

자주 사용되는 표준 출력 방법

  • 파이썬에서 기본 출력은 print() 함수를 이용한다.
    • 각 변수를 콤마(,)를 이용하여 띄어쓰기로 구분하여 출력할 수 있다.
  • print()는 기본적으로 출력 이후에 줄 바꿈을 수행한다.
    • 줄 바꿈을 원치 않는 경우 'end'속성을 이용할 수 있다.
# 출력할 변수들
>>> a = 1
>>> b = 2
>>> print(a,b)
>>> print(7, end=" ")
>>> print(8, end=" ")

# 출력할 변수
>>> answer = 7
>>> print(" 정답은 " + str(answer) + "입니다.")

1 2
7 8 정답은 7입니다. 

f-string

  • 파이썬 3.6부터 사용 가능하며, 문자열 앞에 접두사 'f'를 붙여 사용한다
  • 중괄호 안에 변수명을 기입하여 간단히 문자열과 정수를 함께 넣을 수 있다
>>> answer = 7
>>> print(f"정답은 {answer}입니다.")
정답은 7 입니다.

좋은 웹페이지 즐겨찾기