이번에는 list 라는 자료형을 다룰 것이다. list 는 여러 종류의 데이터를 저장할 수 있는 데이터 형이다. 여러 종류의 데이터를 저장한다고 하면 이전에 다루었던 튜플이 떠오를 것이다! 튜플이 있는데 왜 리스트를 사용하냐고 의문을 가지게 될 것이다. 당연한 이야기지만 리스트와 튜플은 '다르기' 때문이다. 무엇이 다를까?? 그것은 바로 원소의 추가, 삭제, 변경 의 가능 여부이다. 기억을 더듬어 보면 우리는 튜플을 선언할 때, 선언만 하고 그것을 이용하기만 했었다. 원소를 추가하거나 삭제하지 않았다. 그러나 리스트는 그것을 가능하게 해준다!
리스트 선언 및 기본연산
그럼 리스트를 선언해보자.
animals = ["개","고양이","쥐","소"]
print(animals[0])
print(animals[1])
print(animals[2])
print(animals[3])
리스트는 튜플과 마찬가지로 인덱싱이 가능하다. 원하는 원소에 접근할 수 있고, 이를 통해 원소의 정보를 출력할 수 있다.
리스트는 인덱싱 뿐만 아니라 여러가지 기본 명령으로 리스트에 대한 기본 명령을 수행할 수 있다.
dogs = ["말티즈","허스키","시츄","허스키","말라뮤트","시츄","허스키"]
print(len(dogs))
print(dogs.count("허스키"))
print(dogs.index("시츄"))
print(dogs.index("허스키"))
len명령어로 리스트의 길이를 알 수 있고, count 명령어로 해당 원소의 개수를 알 수 있다. 또 index 명령어로 해당 원소의 index 를 알 수 있다. 여기서 index 는 제일 먼저 나오는 원소의 index 를 출력한다. 결과는 아래와 같다.
리스트 원소의 추가, 제거, 변경
여러가지 명령어를 통해 리스트의 원소를 추가, 제거 변경할 수 있다. 아래의 코드를 실행해보자.
dogs = ["말티즈","허스키","시츄","허스키","말라뮤트","시츄","허스키"]
cats = ["코리안숏헤어","길고양이"]
dogs.append("불독")
print(dogs)
dogs.insert(2,"콜리")
print(dogs)
dogs.extend(cats)
print(dogs)
dogs.pop()
print(dogs)
dogs.pop()
print(dogs)
dogs[0] = "보더콜리"
print(dogs)
먼저 append 명령어로 list 에 원소를 추가할 수 있다. append 명령어를 사용하게 되면 맨 뒤에 원소가 추가되게 된다. insert 명령어는 첫번째 원자에는 index 로 추가될 자리이고 두번째 인자는 들어갈 데이터이다. insert 명령어를 사용하게 되면 2번째 index 에 추가되게 될 데이터가 들어가고, 기존에 있던 2번재 데이터는 3번째로 밀려나게 된다. 그리고 리스트의 길이는 1이 증가되게 된다. extend 명령어는 하나의 리스트에 다른 리스트를 통째로 copy 하여 오는 것이다. copy 해올 리스트 이름을 지정하면 해당 리스트는 맨뒤에 순서대로 추가되게 된다. pop 명령어는 별도의 인자가 없으며 가장 뒤의 index 원소 부터 제거 한다(이는 흔히 First in First out 인 FIFO 방식이라고도 한다). 그리고 원소의 변경은 해당 원소의 인덱싱을 지정하여 원소를 대입하주면 된다. 결과는 아래와 같다.
리스트 원소의 정렬
리스트는 원소를 정렬해주는 명령어도 제공한다.
alphabet = ["p","y","t","h","o","n"]
print(alphabet)
alphabet.sort()
print(alphabet)
alphabet.reverse()
print(alphabet)
sort 는 알파벳순으로 정렬해주고, reverse 는 현재 원소들을 반대로 뒤집어준다. 결과는 아래와 같다.
리스트 안의 리스트
튜플이 튜플안에 튜플을 선언할 수 있었던 것과 마찬가지로, 리스트도 리스트안에 리스트를 또 선언할 수 있다!
list_of_list = [[],[],[]]
list_of_list[0] = ["시츄","말라뮤트"]
list_of_list[1] = ["코리안숏헤어","길고양이"]
print(list_of_list)
list_of_list[0].append("콜리")
print(list_of_list[0][2])
먼저 리스트의 리스트를 선언하는 것은 쉽다. 리스트안에 다시 괄호를 이용하여 리스트를 또 선언해주면 된다. 물론 리스트 안의 리스트도 리스트이니(??) 원소 변경이 리스트 단위로 가능해 진다. 또한 위에서 알아 봤던 명령어들을 모두 사용할 수 있다. 위 코드의 결과는 아래와 같다.
'python' 카테고리의 다른 글
[Python] 객체에 대한 이해, 기본 사용법 (0) | 2020.04.06 |
---|---|
[Python] 기본적인 사전 사용법 (0) | 2020.04.01 |
[Python] 함수 작성하기 (0) | 2020.03.23 |
[Python] 반복문(for, while) (0) | 2020.03.20 |
[Python] 조건문 사용하기 (0) | 2020.03.18 |