파이썬 자료형 - (2) 리스트 list
(이 글은 '언어와정보처리' 과목에서 '파이썬 기초' 수업 내용을 정리한 글이다.)
pytorch 에 대해 들어가기 전, python 기초를 간단하게 리뷰하고 넘어가려한다.
자료형
- 숫자 (Numbers)
- 문자열 (Strings)
- 리스트 (Lists)
- 튜플 (Tuples)
- 딕셔너리 (Dictionaries)
- 집합 (Sets)
- 불 (Boolean)
위의 자료형 중 리스트에 대해 알아보자.
리스트 (Lists)
- 데이터를 담는 그릇
- 표현 : [ ] (대괄호)를 사용하여 표현
- [ 'a', 'b', 'c' ], [ 1, 2, 3 ], [ 'a', 'b', 1, 2, 'c' ], [ [ 'a', 'b' ], 1, 2, 'c' ]
- element : 리스트의 구성 요소 ('a', 'b', 'c', 1, 2, 3 등)
리스트 인덱싱 (indexing)
- 리스트도 문자처럼 인덱싱이 가능함
- 문자열 데이터와 마찬가지로 [인덱스_숫자]로 리스트의 (숫자)번째 element를 출력
a = [1,2,3]
b = a[0]
print(b)
결과 : 1
리스트 네스팅 (nesting)
- 리스트는 그 자체로 다른 리스트의 element 가 될 수 있음.
- 리스트 내 리스트(이중, 삼중 리스트 등)를 네스팅(nesting) 이라 함.
a = [1, 2, [3, 4, 5]] # [3, 4, 5] 리스트가 a 리스트의 element 로 존재
b = a[2]
print(b)
c = a[2][0] # a[2] 가 리스트이기 때문에 또 한 번 인덱싱이 가능
print(c)
결과 : [3, 4, 5]
3
element 바꾸기
: 리스트의 기존 element 를 새로운 값으로 교체 - 문자와 다르게 바로바로 바꾸기 가능
a = [1, 2, 3]
print(a[0]) # = 1
a[0] = 'a' # 기존의 1을 'a' 로 교체
print(a)
결과 : 1
['a', 2, 3]
리스트에 element 추가하기 (append)
: 리스트의 마지막 element 으로 새로 값을 추가할 때는 append() 를 사용
a = [1, 2, 3]
a.append(10)
print(a)
a.append(20)
print(a)
결과 : [1, 2, 3, 10]
[1, 2, 3, 10, 20]
리스트 정렬 (sort)
: 숫자형 또는 문자형 element 를 오름차순 또는 내림차순으로 정렬할 때는 sort() 를 사용
- sort() 사용하면 바로 오름차순으로 정렬됨.
- 내림차순으로 하려면 reverse = True
a = [2, 4, 1, 3]
a.sort()
print(a)
a.sort(reverse=True) # 역순
print(a)
결과 : [1, 2, 3, 4]
[4, 3, 2, 1]
리스트 확장 (extend)
- 리스트끼리 합쳐 확장된 리스트를 만들 때 (리스트1).extend(리스트2) 를 사용
* extend() 를 사용했을 때
a = [1, 2, 3]
b = [11, 12, 13]
a.extend(b)
print(a)
결과 : [1, 2, 3, 11, 12, 13]
* append() 를 사용했을 때
- append 를 사용하면, a 리스트의 element 로 b 가 추가됨.
a = [1, 2, 3]
b = [11, 12, 13]
a.append(b)
print(a)
결과 : [1, 2, 3, [11, 12, 13]]
element를 하나의 문자열로 만들기 - join()
- 리스트의 element 가 문자형일 때 join() 을 사용하면 하나의 문자열로 만들 수 있음.
a = ['H', 'e', 'l', 'l', 'o']
b = ''.join(a) # element 를 붙일 때 사이에 스페이스가 없음
print(b)
c = '*'join(a) # element 를 붙일 때 사이에 * 를 넣기
print(c)
결과 : Hello
H*e*l*l*o
리스트 예제 문제
a = ['I', ['code']]
b = ['love'] 를 활용하여 문자열 "I love coding" 을 출력해보기 (단, join 을 사용할 것)
a = ['I', ['code']]
b = ['love']
substring_I = a[0] # I
substring_love = b[0] # love
substring_code = a[1][0] # code
substring_coding = substring_code[:3] + 'ing' # code --> coding
string = ' '.join([substring_I, substring_love, substring_coding])
print(string)
결과 : I love coding