[이코테] 리스트, 입출력
리스트 관련 기타 메서드
함수명 | 사용법 | 설명 | 시간 복잡도 |
---|---|---|---|
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 입니다.
Author And Source
이 문제에 관하여([이코테] 리스트, 입출력), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@osdsoonhyun/이코테-리스트-입출력저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)