원소들이 차례대로 나열되어 있는 선형자료구조.
원소들의 순서, 위치가 정해져 있다.
원소들의 중복이 허락된다.
다양한 자료형의 원소들을 저장할 수 있다.
어떤 위치에서도 원소의 삽입 및 삭제가 가능하다.
mudo = ["유재석", "박명수", "조세호"]
empty1 = [] # 빈 리스트도 생성이 가능하다
리스트에서 특정 한 요소만 선택할 수 있다.
index 값은 0부터 시작한다.
print(mudo[0])
0번 인덱스를 가진 유재석 이 출력된다.
그런데 만약 mudo 리스트에 존재하지 않는 3번 인덱스를 호출한다면?
print(mudo([3])
list의 범위 밖이라고 오류가 발생하며 실행이 중단된다.
문자열과 같이 슬라이싱을 통해 부분 요소들을 선택할 수 있다.
인덱스는 0부터 시작하며 마지막 인덱스는 (원하는 마지막 요소의 인덱스 + 1)을 의미한다.
mudo[1:]
mudo[:1]
mudo[1:3]
insert 메소드를 사용하면 리스트의 원하는 인덱스에 원소를 추가 할 수 있다.
mudo.insert(1, "정형돈")
1번 인덱스에 정형돈이 추가된 것을 확인할 수 있다.
insert 메소드와 같이 리스트의 끝에 원소를 추가하는 메소드이지만 리스트를 추가할 경우 그 결과는 다르다.
mudo.append(["하하", "전진"])
mudo.extend(["하하", "전진"])
+연산자를 사용해 리스트를 이어 붙일 수 있다.
mudo = mudo + ["하하", "전진"]
extend() 메소드와 같은 결과를 보여준다.
곱하기 연산자를 사용해 횟수만큼 리스트를 이어 붙일 수 있다.
mudo = mudo*2
del
리스트의 인덱스를 활용해 원소를 제거하는 함수
del mudo[3]
del mudo[3:5] # 슬라이싱 가능
remove()
리스트의 원소값을 활용해 원소를 제거하는 메소드
해당 원소에 중복이 존재하는 경우 첫번째 값만 삭제한다.
mudo.remove("조세호")
slicing 활용
mudo[2:5] = [] # 2~4번 인덱스를 비운다
clear()
리스트의 원소를 모두 제거한다.
mudo.clear()
mudo.pop()
mudo.pop(1)
len(mudo)
유재석 부터 전진까지 6개의 원소 6이 출력된다.temp = ['a','abc','ab','a1','A','AB','ABC','A1','1','12']
temp.sort()
temp = ['a','abc','ab','a1','A','AB','ABC','A1','1','12']
temp.reverse()
다시 무한도전 멤버로 돌아와서
mudo.index("박명수")
첫번째 박명수의 인덱스인 1이 출력된다.mudo.count("박명수")
박명수 원소가 2개 있으므로 2가 출력된다.리스트를 복사하는데는 두가지 방식이 있다.
a = [1,2,3,4]
b = a
메모리 주소를 확인해보면id(a)
id(b)
같은 리스트를 공유하는 것을 확인할 수 있다.a = [1,2,3,4]
b = a[:]
id(a)
id(b)
a리스트와 b리스트는 다른 메모리 주소를 가진 것을 확인 할 수 있다.
a[2] = 5
따라서 a리스트의 값을 변경해도 b리스트에는 영향을 끼치지 않는다.