04. 리스트 자료형

2020. 12. 27. 04:41파이썬

리스트 자료형이 필요한 이유

  • 숫자데이터와 문자데이터를 함께 출력할 때 str 명령어를 사용해서 숫자 데이터 → 문자 데이터로 변환해야 한다.
  • 문자 데이터 연결 연산자(+)는 문자 데이터에 대해서만 사용할 수 있다.
  • 문제 원인 : 관리할 상품 증가 데이터 개수 증가 데이터를 저장할 변수 개수 증가
  • 해결 방안 : 데이터 개수 증가를 막을 수는 없으니, 변수 개수 증가를 최소화 하면 됨
  • 기존에 변수 1개당 데이터 1개 저장 했던 것  변수 1개당 데이터 여러 개를 저장하면 된다.        

1개의 병수에 여러 개의 데이터를 저장하면 데이터의 개수에 큰 영향을 받지 않고 효율적으로 데이터를 관리할 수 있다.


리스트

  • 여러 개의 데이터를 하나의 변수로 관리하는 방법
  • 성격이 같은 여러 개의 데이터를 하나의 데이터 세트로 표현한다.
  • 데이터와 콤마 사이의 공백(space)은 있어도 좋고, 없어도 괜찮다
  • 하지만, 일반적으로 뒤에 붙는 콤마에는 공백이 없고, 데이터 앞의 콤마는 1칸의 공백을 추가한다.

리스트란, 대괄호[] 와 콤마(,)를 사용해서 여러 개의 데이터를 하나의 세트로 만든 것

 

  • 리스트 데이터 세트에 사용할 수 있는 괄호는 대괄호[], 중괄호{}, 소괄호() 가 있는데, 프로그래밍 언어에 따라 사용하는 괄호가 다르다
  • C언어는 중괄호{} 사용, Javascript, 파이썬은 대괄호[] 사용

어떤 괄호를 사용하는 것이 중요한 것이 아니라, 리스트 데이터 세트의 시작과 끝을 괄호로 표현한다는 것이 중요하다

 

출처 : 혼자 공부하는 첫 프로그래밍 with 파이썬

 


 

 

리스트 자료형

  • 대괄호[] 로 감싸고 각 요솟값은 쉼표(,)로 구분해준다.
  • 리스트 안에는 어떠한 자료형도 포함시킬 수 있다.
a = []
b = [1, 2, 3, 4, 5]
c = ['Life', 'is', 'too', 'short']
d = [1, 2, 'Life', 'is']
e = [1, 2, ['Life', 'is']]

리스트의 인덱싱

a = [1, 2, 3]
a[o]         # 1 (첫번째 요소)
a[0] + a[2]  # 4
a[-1]        # 3

리스트의 슬라이싱

a = [1, 2, 3, 4, 5]
a[0:2]       # [1, 2]
b = a[:2]    # [1, 2]
c = a[2:]    # [3, 4, 5]

 

cf. 문자열 슬라이싱과 동일하게 사용되었다.

d = "12345"
d[0:2]   #'12'

리스트 연산하기

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

# 리스트 더하기
a + b    # [1, 2, 3, 4, 5, 6]

# 리스트 반복하기
a * 3    # [1, 2, 3, 1, 2, 3, 1, 2, 3]

# 리스트 길이 구하기
len(a)   # 3

실수하기 쉬운 리스트 연산오류

1. 정수과 문자열 더하기는 못한다형오류 발생

str() : 정수나 실수를 문자열의 형태로 바꾸어 주는 파이썬의 내장 함수

a = [1, 2, 3]
a[2] + "hi" (X)
str(a[2]) + "hi"     # "3hi"

2. 리스트 값 수정

a = [1, 2, 3]
a[2] = 4     # a = [1, 2, 4]

3. 리스트 값 삭제

del 객체 : 파이썬 삭제 함수

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

del a[1]     # a = [1, 3, 4, 5]
a[1] = []    # a = [1, 3, 4, 5]

del a[2:]    # a = [1, 2]
a[2:] = []   # a = [1, 2]

리스트 관련 함수

1. 리스트 요소 추가 (append)

lst.append(x) : 리스트 lst 의 맨 마지막에 x 추가하는 함수

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

# 리스트에 다시 리스트를 추가도 가능하다
a.append([5, 6])     # a = [1, 2, 3, 4, [5, 6]]

2. 리스트 정렬 (sort)

  • 리스트의 요소를 순서대로 정렬
  • 숫자는 크기 순으로 정렬하고, 문자는 알파벳 순으로 정렬함
a = [1, 4, 3, 2]
a.sort()     # a = [1, 2, 3, 4]

b = ['a', 'c', 'b']
b.sort()     # b = ['a', 'b', 'c']

3. 리스트 뒤집기 (reserve)

  • 리스트를 역순으로 뒤집어 준다.
  • 리스트의 요소들을 순서대로 정렬한 다음 다시 역순으로 정렬하는 것이 아니라,
  • 그저 현재의 리스트를 그대로 거꾸로 뒤집는다.
a = ['b', 'a', 'c']
a.reserve()  # a = ['a', 'b', 'c']

4. 위치 반환 (index)

리스트에 x 값이 있으면 x의 위치 값 (인덱스)를 돌려준다.

a = [1, 2, 3]
a.index(3)   # 2
a.index(1)   # 0
a.index(0)   # 값 0은 a 리스트에 존재하지 않기 때문에 값 오류 (ValueError) 발생한다.

5. 리스트에 요소 삽입 (insert)

lst.insert(a ,b) : lst 라는 리스트의 a번째 위치에 b를 삽입하는 함수

a = [1, 2, 3]

# a[0] 위치에 4라는 값을 삽입함
a.insert(0, 4)   # [4, 1, 2, 3]

# a[3] 위치에 5라는 값을 삽입함
a.insert(3, 5)   # [4, 1, 2, 5, 3]

6. 리스트 요소 제거 (remove)

  • lst.remove(x) : lst 라는 리스트에서 첫 번째로 나오는 x를 삭제하는 함수
  • lst 라는 리스트에 x 값이 여러 개 있으면 첫 번째에 있는 x 만 삭제된다.
a = [1, 2, 3, 1, 2, 3]
a.remove(3)      # a = [1, 2, 1, 2, 3]

# 다시 실행하면 남은 3이 삭제된다
a.remove(3)      # a = [1, 2, 1, 2]

7. 리스트 요소 끄집어내기 (pop)

lst.pop() : : lst 라는 리스트의 맨 마지막 요소를 꺼내고 리스트에서는 그 값을 삭제한다.

a = [1, 2, 3]
b = a.pop()     # b = 3 & a = [1, 2]가 된다

lst.pop(x) : lst 라는 리스트의 x번째 요소를 꺼내고 리스트에서는 그 값을 삭제한다.

a = [1, 2, 3]

# a[1]의 요소를 꺼내고 삭제함
b = a.pop(1)     # a = [1,3] & b = 2

8. 리스트에 포함된 요소 x의 개수 세기 (count)

lst.count(x) : lst 라는 리스트 안에 x라는 값이 몇 개 있는지 조사하여 그 개수를 돌려주는 함수

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

9. 리스트 확장 (extend)

lst.extend(lst_2) :

lst_x에는 리스트 자료형만 올 수 있으며, 원래의 lst 리스트에 lst_2 리스트를 더해준다 (추가해준다)

a = [1,2,3]
a.extend([4,5])  # a = [1, 2, 3, 4, 5]
  • a.extend([4,5]) a += [4, 5] 동일하다
  • += : 계산한 값을 원래 값에 할당하는 할당 연산자이다.
  • 예) i += 1 i = i + 1 동일하다
b = [6, 7]
a.extend(b)      # a = [1, 2, 3, 4, 5, 6, 7]

 

출처 : 점프 투 파이썬

 

'파이썬' 카테고리의 다른 글

06. 딕셔너리 자료형  (0) 2020.12.27
05. 튜플 자료형  (0) 2020.12.27
03. 문자형 (문자열) 자료형  (0) 2020.12.27
02. 숫자형 자료형  (0) 2020.12.27
01. 파이썬이란??  (0) 2020.12.27