╱╱╭╮╱╱╱╱╱╱╭━━━╮╱╱╱╭╮╱╭╮╱╱╱╱╱╱ ╱╱┃┃╱╱╱╱╱╱┃╭━╮┃╱╱╱┃┃╱┃┃╱╱╱╱╱╱ ╱╱┃┣━━┳━━╮┃┃╱┃┣━╮╱┃╰━╯┣━━┳━╮╱ ╭╮┃┃╭╮┃┃━┫┃╰━╯┃╭╮╮┃╭━╮┃╭╮┃╭╮╮ ┃╰╯┃╭╮┃┃━┫┃╭━╮┃┃┃┃┃┃╱┃┃╭╮┃┃┃┃ ╰━━┻╯╰┻━━╯╰╯╱╰┻╯╰╯╰╯╱╰┻╯╰┻╯╰╯

Python/Python 기초

[Python] 변수의 선언과 자료형 4 (컬렉션-list)

재안안 2022. 2. 22. 23:09

컬렉션이란 모음이라는 뜻으로 여러가지 변수들의 집합체이다.

컬렉션은 여러가지 데이터들을 한번에 저장할 수 있다.

 

아래와 같이 컬렉션은 여러가지 종류로 공통적으로 여러가지 데이터들을 저장하는 자료형이지만

각자 가지고 있는 특징들이 다르다.

 

1. 리스트 list

2. 튜플 tuple

3. 세트 set

4. 딕셔너리 dictionary

 

list, tuple, set 생성

 

리스트, 튜플, 세트 생성은 위와 같이 한다. li, tu, se 모두 1, 2, 'm'을 값으로 저장했다.

생성 방식에도 별 차이가 없으니 잘 봐야한다.

여기 1, 2, 'm'처럼 컬렉션안에 있는 데이터들을 원소라고도 한다.

 

리스트, 튜플, 세트의 특징을 정리했다.

 

리스트[대괄호] 사용

생성후 원소의 추가, 제거, 변경이 가능하고 원소의 순서가 있다.

 

튜플(소활호) 사용

생성후 원소의 추가, 제거, 변경이 불가능하고 원소의 순서가 있다.  재미있게 말하자면 "눈으로만 보세요"이다.

 

세트{중괄호} 사용

생성후 원소의 추가, 제거, 변경이 가능하지만 중복된 원소를 저장하지 않는다.

그리고 세트에는 원소의 순서가 없다.

 

 

우선 리스트 먼저 알아보겠다.

리스트는 역시 문자열처럼 원소의 순서가 있으므로 인덱싱이 가능하다.

 

아래의 예제를 통해 설명하겠다.

list index

12번째 줄에서 li를 슬라이싱해 원소들을 추출하였다.

11줄의 \n 개행문자이고 한줄 띄워주세요 라는 뜻이다.

 

이처럼 리스트는 인덱싱과 슬라이싱이 가능하다.

이제 리스트 원소 추가, 제거, 변경을 해볼 것이다.

 

아래의 예제를 통해 설명하겠다.

 

리스트 원소 추가, 제거, 변경

우선 원소 추가의 방법중 하나인 append 메소드의 사용법으로

리스트명.append(데이터)라는 형식으로 사용하며 데이터를 리스트의 마지막 순서로 추가한다.

 

14번째 줄에서 li = [1, 2, 'm']인 상태에서 마지막에 'l'을 추가 하니 li = [1, 2, 'm', 'l']가 된다. 

 

리스트 원소 추가, 제거, 변경

아래 insert 메소드는 리스트명.insert(인덱스 값, 데이터)의 형식으로 사용 가능하다.

15번째 줄은 2번인덱스에 원소3을 추가하라는 말인데 실행 결과로 li = [1, 2, 3, 'm', 'l']가 된다.

 

그리고 원소의 변경은 그냥 원소 인덱스에 =연산자를 사용하여 값을 넣어주면 된다.

16번째 줄에서 실행하였는데 실행 결과로 li의 3번째 원소 'm'이 'k'로 변경 되었다.

사용시 원소 인덱스를 주의하면 되겠다.

 

최종 실행결과는 아래와 같다.

실행 결과

원소의 추가 메소드를 알아봤으니 이제는 제거 메소드를 알아보겠다.

원소 제거 메소드는 아래와 같다.

 

del 키워드

pop() 메소드

remove() 메소드

clear() 메소드

 

 

우선 del 키워드의 사용형식은 del 리스트명[인덱스]이다. 아래와 같이 사용한다. li[3] 삭제후 li를 출력한 것이다. 원래는 li[3]이었던 'k'가 없어졌다.

 

del 사용
실행 결과

 

또한 pop 메소드가 있는데 pop은 원소 제거+ 원소 값 저장의 기능이 있다.

pop 메소드를 정확히 말하자면 pop()은 리스트에서 원소를 빼온다(pop).

 

선택된 값을 가져온 후 삭제한다는 것이다. 사용형식은 리스트명.pop(인덱스)이다.

만약 사용형식에서 인덱스가 지정되지 않을 경우 자동으로 -1가 들어가서 마지막 순서의 원소가 선택된다.

 

아래의 예제를 통해 설명하겠다.

 

pop메소드 사용
실행 결과

 

 

그리고 remove 메소드 또한 원소 제거용으로 쓸 수 있다.
del과 pop의 매개체가 인덱스였던것과 달리 remove()는 을 받는다.

 

사용형식은 리스트명.remove(값)이다.

리스트안에 입력한 값과 같은 원소가 있으면 제거한다.

 

remove는 주로 중복된 값을 제거하는 용도로 쓰이는데 이때 가장 먼저 발견된 원소를 지운다. 물론 인덱스 오름차순으로 찾는다.

 

아래의 예제를 통해 확인하겠다.

 

remove 사용
실행 결과

 

마지막으로 clear 메소드가 있다.

 

사용형식은 리스트명.clear() 이고 리스트의 전체 원소를 없애버린다.

 

아래의 예제를 통해 확인하겠다.

 

clear 사용
실행 결과

말끔히 없어졌다.