티스토리 뷰
목차
이 포스트는 Python의 기본적인 List 사용방법이나 기억해두면 편리한 방법에 관해 설명합니다.
포스트에서 소개하는 소스 코드는 Python 3.7, Ubuntu 18.04에서 작동 확인했습니다.
Python List 기초
List는 여러 요소를 포함하는 컨테이너 객체(컨테이너 = 용기(저장 공간))를 말합니다. List를 사용하는 이유는 다양합니다.
한 번에 많은 연속적인 데이터를 취급할 수 있다는 것이 대표적인 이유죠. 기존 방법을 활용하여 요소의 추가 및 삭제, 검색 및 계산 등 다양한 작업을 할 수도 있습니다.
리스트 이외에도 여러 요소를 다루는 개체가 있습니다.
- set
- tuple
- dict
- numpy.array
이 중에서 다른 언어의 배열에 해당하는 것이 numpy.array 입니다.
그런데, 이러한 여러 요소를 잘못 사용할 수도 있습니다.
- 유연하며 어떤 요소도 다룰 수 있음
- 일반 배열처럼 취급
위와 같은 장점이 있습니다만,
- tuple처럼 데이터 변경이 불가능하므로 key로 사용하기 어렵다
- numpy.array보다 느리다
이런 단점도 있습니다.
파이썬 리스트 사용 방법 시작합니다.
List 기본 사용 방법
먼저, 목록을 작성하여 봅시다.
list 생성 및 초기화
리스트는 [] 안에 쉼표로 요소를 구분된 요소를 저장합니다.
list 초기화는 다음과 같이 실행합니다.
1 2 3 | mylist = [] # 또는 mylist2 = list() | cs |
위와 같이 [] 안의 내용으로 list가 초기화됩니다.
위의 mylist 에는 요소가 하나도 없습니다. 초기화와 동시에 요소를 추가하는 방법은 다음 코드를 참조하세요.
1 | mylist = [1,2,3,4] | cs |
위 코드를 통해 mylist라는 list는 선언과 동시에 int형의 요소를 저장합니다.
mylist에 포함되어있는 요소를 표시할 때는 print 함수를 사용합니다.
1 | print(mylist) | cs |
1 2 | [출력] [1, 2, 3, 4] | cs |
이렇게 mylist를 출력합니다.
또한, 리스트 요소를 하나씩 표시할 때는 for 문을 사용하는 것이 좋습니다. for 문 사용 방법에 대해선 아래 글을 참조하세요.
방금 만든 mylist의 모든 요소는 int 형이지만, Python의 list는 여러 자료형도 저장할 수 있습니다.
다음 코드를 참조하세요.
1 2 | mylist2 = ["Hello", 1, "world", 2, "!"] print(mylist2) | cs |
1 2 3 | [출력] ['Hello', 1, 'world', 2, '!'] | cs |
위의 샘플 코드에서 만든 mylist2는 문자열, int 요소를 포함합니다.
append 메소드로 요소 추가
append 메소드를 사용하여 list에 새로운 요소를 추가해 봅시다.
append 함수는 인수에 추가할 요소의 값을 삽입합니다.
다음 코드를 참조하십시오.
1 2 3 | mylist = [1,2,3,4] mylist.append(5) print(mylist) | cs |
1 2 | [출력] [1, 2, 3, 4, 5] | cs |
위 코드에서는 append 메소드를 사용하여 mylist에 새로운 요소 "5"를 추가했습니다.
remove 메소드에서 요소를 제거
요소 추가와는 반대로, 요소 제거 방법도 알아봐요.
요소 제거할 땐 remove 함수를 사용합니다. remove 메소드는 인수로 삭제할 요소의 값을 삽입합니다.
다음 코드를 참조하십시오.
1 2 3 | mylist = [1,2,3,4,5] mylist.remove(5) print(mylist) | cs |
1 2 | [출력] [1, 2, 3, 4] | cs |
위 코드에서는 remove 메소드를 사용하여 요소를 하나 제거했습니다.
만약 remove 메소드 인자로 list에에 없는 값을 지정하면 오류가 발생합니다.
1 | mylist.remove(7) | cs |
1 2 3 4 | [출력] Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: list.remove(x): x not in list | cs |
위의 코드는 mylist에 존재하지 않는 요소 "7"을 삭제하려고 했으므로 오류가 출력된 결과입니다.
Python List 기초 예제 모음
in 연산자를 이용해 요소 검색
리스트에 특정 요소가 포함되어 있는지 확인할 때는, in 연산자를 사용합니다. 반환 값은 True 또는 False입니다.
다음 코드를 참조하십시오.
1 2 3 | mylist = [1,2,3,4,5] print(3 in mylist) print("Hello" in mylist) | cs |
1 2 3 | [출력] True False | cs |
위 코드에서는 in 연산자를 사용하여 정수 3과 문자열 Hello가 존재하는지 확인합니다.
정수 3은 mylist에 포함되어 있어서 True로 표시되었습니다.
문자열 Hello는 mylist에 포함되어 있지 않아서 False로 표시되었습니다.
len 함수에서 요소의 수를 계산
list에 여러 요소가 포함된 경우 개수를 알고 싶다면 len 함수를 사용합니다.
len 함수는 인수에 list를 전달합니다.
다음 코드를 참조하십시오.
1 2 | length = len(mylist) print(length) | cs |
1 2 | [출력] 5 | cs |
위의 코드는 mylist에 포함된 요소의 수를 계산하여 출력합니다.
보시다시피 성공적으로 결과값 4를 표시하네요.
Python list 응용 기초
지금까지는 list의 기본적인 사용 방법 및 입문 내용을 다뤘습니다.
이제는 응용을 이어 나가겠습니다.
list 편집
기존의 list를 바탕으로 새로운 list를 어떻게 만들까요.
예를 들어, list 요소 값을 모두 2배로 늘리고 싶다면 for 문을 응용하여 새로운 list를 만들 수도 있습니다.
다음 코드를 참조하십시오.
1 2 3 | old = [1,2,3,4, "Hello", "World"] new = [i*2 for i in old] print(new) | cs |
1 2 | [출력] [2, 4, 6, 8, 'HelloHello', 'WorldWorld'] | cs |
위의 코드에서 old라는 list를 기본으로 new라는 새로운 list를 만듭니다.
new 요소는 old의 각 요소를 두 배로 늘린 것입니다. int 형 요소는 1에서 2, 2에서 4 등 성공적으로 변경되었네요.
문자열 Hello와 World는 HelloHello와 WorldWorld가 되었습니다.
[] 안에 일반 for 루프와 같은 반복문(for 요소 in 리스트)을 쓰고 그 앞에는 새 list의 각 요소 값을 입력합니다. 이 코드의 경우, i * 2 각 요소의 값 입니다.
join 메소드로 문자열 만들기
list를 바탕으로 문자열 변수를 작성하려면 join 메소드를 사용합니다.
join 메소드는 문자열 형식의 메서드입니다. 기본적인 구문은 hoge.join (list)입니다.
hoge 부분은 임의의 분리된(단락) 문자입니다.
다음 코드를 참조하십시오.
1 2 3 4 5 6 7 | mylist= ["1","2","3","4", "Hello", "World"] str1 = ''.join(mylist) str2 = ' '.join(mylist) print(str1) print(str2) | cs |
1 2 3 | [출력] 1234HelloWorld 1 2 3 4 Hello World | cs |
위 코드는 mylist를 기반으로 str1, str2 두 문자열을 만듭니다. str1은 구분 기호를 지정하지 않아서 1234HelloWorld 같이 모두 연결한 문자열이 출력되었습니다.
반대로, str2의 단락 문자는 스페이스를 지정했기 때문에 각 요소가 공백으로 구분되어 있습니다. 여기서 주의할 점은 mylist list 모든 요소가 문자열이 아니면 오류가 발생한다는 점입니다.
이것도 기억해두면 편리한 기술이므로, 꼭 기억해두세요.
정리
이번에는 Python List의 기본적인 사용 방법에서부터 List join 등 응용 방법을 설명했습니다.
꼭 기억해야 하는 점은,
- append, remove 등 기본적인 방법은 꼭 기억하기
- 리스트 내부 문법 표기 방법은 코드 줄이기에 좋음
- join 함수로 문자열도 만들 수 있음
이렇게 파이썬 리스트 사용 방법을 마칩니다.
Python 관련 글
배열 거꾸로(reversed) 출력
https://codingcoding.tistory.com/1024
CTypes 구조체란?
https://codingcoding.tistory.com/610
리스트 슬라이싱 예제
https://codingcoding.tistory.com/1025
정수 최대값 구하기