리스트는 데이터의 집합이다. 홀수의 집합 [1,3,4,…] 라던지 소수 집합 [2,3,5,7,11,…] 등은 리스트이다.

 

1. 리스트 표현방식


odd = [1,2,3,4,5] # 1,2,3,4,5의 숫자 모음 리스트
game = ['star craft','battle ground', 'sudden attack', 'crazy arcade'] # 추천게임 리스트
hello = [1,'hi',['world','Korea']] # 숫자와 문자, 리스트를 포함하는 리스트

 

  • 리스트는 대괄호 []로 감싸고 쉼표 , 로 요소를 구분해준다.
  • 리스트를 요소값으로 가지는 리스트도 정의할 수 있다.
  • 리스트는 어떤 자료형이라도 포함할 수 있다.

 

 

2. 리스트 인덱싱(indexing)


num=[1,2,3]
print(num[0]) # list num의 첫 번째 요소(1)
print(num[2]) # list num의 세 번째 요소(3)
print(num[-1]) # list num의 뒤에서 첫 번째 요소(3)
print(num[0]+num[1]) # 1+2 = 3

double_list = [1,2,3,['a','b','c']]
print(double_list[0]) # 1
print(double_list[3]) #['a','b','c']
print(double_list[3][0]) # 'a'
print(double_list[3][2]) # 'c'
print(double_list[-1][2]) # 'c'

triple_list = [1,2,3,['a','b',['dog','cat']]]
print(triple_list[3][2][0]) # 'dog'

 

 

 

 

3. 리스트 슬라이싱(slicing)


num = [1,2,3,4,5]
print(num[0:3]) # [1,2,3] = [num[0], num[1], num[2]]   문자열 슬라이싱처럼 num[3]은 포함되지 않는다.
print(num[:2]) # 처음 ~ num[1] = [1,2]
print(num[2:]) # num[2] ~ 끝 = [2,3,4,5]

double_list = [1,2,3,['a','b','c'],4,5]
print(double_list[2:5]) # double_list[2] ~ double_list[4] = [3,['a','b','c'],4]
print(double_list[2:5][1]) # ['a','b','c']
print(double_list[2:5][1][1]) # 'b'
print(double_list[3][:2]) #['a','b']

 

 

 

 

4. 리스트 연산


a=[1,2,3]
b=[4,5,6]

1) 리스트 더하기(이어붙이기)
print(a+b) # [1,2,3,4,5,6]

2) 리스트 곱하기(반복)
print(a*4) # [1,2,3,1,2,3,1,2,3,1,2,3] 4번 반복
#print(a[2]+'hello') # 3hello가 나올것으로 기대하지만 숫자+문자열 은 자료형 오류를 일으킨다.

 

 

5. 리스트 수정,삭제


 

1) 리스트 수정

a=[1,2,3,4]
print(a) # [1,2,3,4]

a[1]=10
print(a) # [1,10,3,4]

a[1:2] = [11,12,13] # a[1:2]는 a[1]=10 하나만 해당한다.
print(a) # [1,11,12,13,3,4]

a[1] = [15,16,17] #a[1] = 11
print(a) # [1,[15,16,17],12,13,3,4]<code></code>
  • a[1:2]를 바꾸는것과 a[1]을 바꾸는 것은 다르다.
  • 슬라이싱을 사용해 리스트를 수정하면 새로 넣어주는 리스트의 값들이 자연스럽게 추가된다.
  • 인덱싱을 사용해 리스트를 수정하면 새로 넣어주는 리스트 자체가 리스트 안에 포함된다.

 

2) 리스트 삭제

a = [1,2,3,'a','b','c']
a[2:4] = [] # a[2]~a[3] 삭제
print(a) # [1,2,'b','c']

del a[2] # a[2] = 'b' 삭제
print(a) # [1,2,'c']<code></code>

자료 삭제 방법은 위와 같이 2가 모두 사용 가능하다. 자료 = [] 혹은 del 자료

 

6. 리스트 관련함수


a = [1,2,3,4]

 

1) 추가

a.append(5) # 리스트 a 마지막에 5 추가
print(a) # [1,2,3,4,5]
a.append(['a','b'])
print(a) # [1,2,3,4,5,['a','b']]

 

 

2) 정렬

a = [2,4,1,7]
a.sort() # a를 요소 크기순으로 정렬
print(a) # [1,2,4,7]

a = ['e','b','d','c','a']
a.sort() # a를 알파벳 순으로 정렬
print(a) # ['a','b','c','d','e']

 

3) 뒤집기

a = ['dog','cat','pig','man']
a.reverse() # a의 순서를 역순으로 뒤집기
print(a) # ['man','pig','cat','dog']

 

 

4) 위치 반환

a=[1,2,3,4]
print(a.index(3)) # 요소 3의 index 반환. 3 = a[2] 이므로 2 반환
#print(a.index(5)) # 5라는 요소는 리스트에 존재하지 않으므로 값 오류(ValueError) 발

 

 

5) 삽입

a=[1,2,3,4]
a.insert(0,5) #a[0] 위치에 5를 삽입
print(a) # [5,1,2,3,4]   a[0] = 5
a.insert(4,6) #a[4] 위치에 6을 삽입
print(a) # [5,1,2,3,6,4]

a[n]의 위치에 x를 삽입하면 a[n]=x가 되고 원래 a[n]은 뒤로 한 칸 밀린다.

 

 

6) 삭제

a = [1,2,3,4,5]
a.remove(4) # 4라는 요소를 삭제
print(a) # [1,2,3,5]

a = ['dog','cat','pig','man']
a.remove('cat') # 'cat' 삭제
print(a) # ['dog','pig','man']

a = [1,2,3,1,2,3,1,2,3]
a.remove(2)
print(a) # [1,3,1,2,3,1,2,3]

지우려는 요소값이 여러개인 경우 첫 번째로 나오는 요소만 삭제

 

7) 끄집어내기

a = [1,2,3,4,5]
a.pop() #마지막 요소를 return 시키면서 삭제. 리턴값이 있다는 것을 명심해야한다.
print(a.pop()) # a.pop() = 5 리턴값이 있으므로 출력 가능
print(a) # [1,2,3,4]   5가 삭제되었다.
a.pop(1) # a[1]=2를 return 시키면서 삭제
print(a) # [1,3,4]

 

 

8) 포함 된 요소의 갯수 세기

a = [1,4,2,3,5,1,2,3,5]
print(a.count(3)) # '3이 포함된 횟수 return값' = 2 출력

 

9) 리스트 확장

a = [1,2,3]
a.extend([4,5,6]) # 리스트 a에 리스트 [4,5,6] 덧붙이며 확장
print(a) # [1,2,3,4,5,6]

+ Recent posts