python

파이썬 자료형 - (2) 리스트 list

햇농nongnong 2021. 12. 8. 14:58

(이 글은 '언어와정보처리' 과목에서 '파이썬 기초' 수업 내용을 정리한 글이다.)

 

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