본문 바로가기
프로그래밍 언어/Python

Python(파이썬) 4. 리스트(List)

by kkmin93 2021. 9. 21.
반응형

 

 

" 태도는 사소한 것이지만, 그것이 만드는 차이는 엄청나다.

즉 어떤 마음가짐을 갖느냐가 어떤 일을 하느냐보다 더 큰 가치를 만들 수 있다. "

 

- 윈스턴 처칠 -

 

Python(파이썬) 4. 리스트(List)

목 차
1. 리스트(List)
2. 리스트(List) 관련 함수

3. 리스트(List) 연습문제

 

1. 리스트(List)

 1) 리스트(List)란?

  • 리스트(List)란, 순서가 있는 값들의 나열로 리스트를 구성하는 값을 요소 혹은 원소라고 부른다.
  • 요소 혹은 원소에는 어떠한 타입의 값이든 올 수 있게 된다.
  • 리스트를 만드는 방법은 요소들을 대괄호([ ])로 둘러싸고, 요소들은 콤마(,)로 구분시켜준다.

 

[ 그림1.1 기본 리스트(List) 선언 ]
[ 그림1.2 실수, 문자열, 리스트 등 리스트(List)의 요소로 들어가는 모습 ]

 

 

 2) 리스트(List) 인덱싱

  • 리스트(List)는 문자열과 같이 인덱스(index)가 존재하기 때문에 인덱싱으로 리스트의 요소를 가져올 수 있다.
  • 문자열과는 다르게 인덱싱을 통해 요소를 변경할 수 도 있다.

 

[ 그림1.3 리스트 인덱싱으로 요소 변경 ]
[ 그림 1.4 문자열 인덱싱의 경우 오류를 출력 ]

 

 

  • 리스트(List)를 연결하는 "+" 연산자, 리스트를 반복하는 "*" 연산자 또한 사용이 가능하다.

 

[ 그림 1.5 "+, *" 연산자 활용 모습 ]

 

 

2. 리스트(List) 관련 함수

 1) 추가 함수(append)

  • 기존의 리스트에 있는 요소에 하나의 다른 값을 추가하는 경우 이용하는 함수
  • append() 함수로 추가되는 요소는 기존의 리스트 가장 마지막 요소로 추가가 된다.
  • append() 함수로 추가되는 요소의 타입 또한 마찬가지로 아무런 타입이 올 수 있다.

 

[ 그림 2.1 append() 함수를 이용한 리스트 요소 추가 ]

 

 2) 삽입 함수(insert)

  • 뒤에서부터 추가되는 append() 함수와 달리, insert() 함수는 지정한 위치에 추가하려는 하나의 요소를 넣을 수 있다.
  • insert() 함수에는 "insert(추가될 요소의 위치, 추가할 요소의 값)"을 나타내는 인수(Argument)가 존재한다.
  • insert() 함수로 추가되는 요소의 타입 또한 마찬가지로 아무런 타입이 올 수 있다.

 

[ 그림 2.2 insert() 함수를 이용한 리스트 요소 추가 ]

 

 3) 확장 함수(extend)

  • 한 가지의 요소씩 추가되는 append() 함수와 달리, 여러 개의 값을 추가할 수 있다.
  • extend() 함수로 전달되는 인수에는 리스트로만 올 수 있다.

 

[ 그림 2.3 extend() 함수를 이용한 리스트 요소 추가 ]

 

 4) 위치 확인 함수(index)

  • 리스트(List)에 있는 특정 요소의 위치를 확인하는 함수.
  • 위치의 값은 마찬가지로 "0"부터 시작된다.

 

[ 그림 2.4 index() 함수를 이용한 특정 요소 위치 확인 ]

 

 5) 요소 수 확인 함수(count)

  • 리스트(List)에 존재하는 특정 요소의 수가 몇 개 존재하는지 확인하는 함수
  • count() 함수에 확인하고 싶은 요소를 인자로 건네주면 된다.

[ 그림 2.5 count() 함수를 이용한 리스트 내 특정 요소의 개수 확인 ]

 

 6) 요소를 꺼내는 함수(pop)

  • 리스트(List)의 요소를 꺼내는 함수로 pop() 함수는 인수를 생략하게 되면 가장 뒤의 요소가 꺼내진다.
  • pop() 함수를 이용해 꺼내진 요소는 해당 리스트 내에서 제거된다.

[ 그림 2.6 pop() 함수를 이용한 리스트 꺼내기 ]

 

 7) 제거 함수(remove)

  • 리스트(List)의 해당하는 요소만을 제거한다.
  • 만약 리스트(List)에 해당하는 요소가 여러 개 존재한다면 가장 앞에 있는 요소부터 제거된다.

[ 그림 2.7 remove() 함수를 이용한 리스트 내 요소 삭제 ]

 

 8) 정렬 함수(sort, reverse)

 

  ① sort() 함수

  • 기본적으로 sort() 함수는 "오름차순"으로 정렬시켜준다.

[ 그림 2.8 sort() 함수를 이용한 리스트 내 요소 정렬 ]

 

 

  ② reverse() 함수

  • sort() 함수와는 반대로 단순하게 리스트 내의 요소들을 모두 역순으로 뒤집어주는 함수

[ 그림 2.9 reverse() 함수를 이용한 리스트 내 요소 역 정렬 ]

 

 9) 리스트를 문자열로 변환

  ① for문

[ 그림 2.10 리스트를 문자열로 변환 ]

 

  ② String.join()

[ 그림 2.11 String.join() 함수를 이용한 리스트를 문자열로 변환 ]

 

  ③ 숫자가 포함된 리스트를 문자열로 변환

[ 그림 2.12 숫자를 문자열로 형변환 후 변환 ]

 

3. 리스트(List) 연습문제

 Q1. 리스트 " code = ['9:30', 1, 2, 3, 4, 5] " 생성 후 시간 정보를 제외한 나머지 정보를 출력하라.

 A1. (드래그 후 결과 확인

>>> code = ['9:30', 1, 2, 3, 4, 5]
>>> print(code[1:])print(code[-5:])
[1, 2, 3, 4, 5]

 

 Q2. 리스트 " numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9] "에서 슬라이싱을 이용하여 짝수만 출력하라.

 A2. (드래그 후 결과 확인)

>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print(numbers[1::2])
[2, 4, 6, 8]

 

 Q3. 리스트 " company = ['Naver', 'Samsung', 'Apple', 'Coupang'] "에서 Naver Samsung Apple Coupang 을 출력하라.

 A3. (드래그 후 결과 확인)

>>> company = ['Naver', 'Samsung', 'Apple', 'Coupang']
>>> print(" ".join(company))
Naver Samsung Apple Coupang

 

 Q4. 리스트 " company = ['Naver', 'Samsung', 'Apple', 'Coupang'] "에서 아래와 같이 출력하라.

Naver
Samsung
Apple
Coupang

 A4. (드래그 후 결과 확인)

>>> company = ['Naver', 'Samsung', 'Apple', 'Coupang']
>>> print("\n".join(company))
Naver
Samsung
Apple
Coupang

 

 Q5. 문자열 "Nike/Addias/Puma/Reebok"을 brand라는 리스트로 분리하여 저장하라.

 A5. (드래그 후 결과 확인)

>>> str_1 = "Nike/Addias/Puma/Reebok"
>>> brand = str_1.split("/")
>>> print(brand)
['Nike', 'Addias', 'Puma', 'Reebok']

 

 Q6. 다음 영화 제목을 movie라는 리스트에 저장하라.

아이언맨, 스파이더맨, 베놈, 닥터 스트레인지

 A6. (드래그 후 결과 확인)

>>> movie = ['아이언맨', '스파이더맨', '베놈', '닥터 스트레인지']
>>> print(type(movie), movie)
<class 'list'> ['아이언맨', '스파이더맨', '베놈', '닥터 스트레인지']

 

 Q7. movie 리스트에 '슈퍼맨', '엑스맨' 을 추가하라. 단, '엑스맨'은 '아이언맨'과 '스파이더맨' 사이에 추가하라.

 A7. (드래그 후 결과 확인)

>>> movie = ['아이언맨', '스파이더맨', '베놈', '닥터 스트레인지']
>>> movie.append('슈퍼맨')
>>> movie.insert(1, '엑스맨')
>>> print(movie)
['아이언맨', '엑스맨', '스파이더맨', '베놈', '닥터 스트레인지', '슈퍼맨']

 

반응형