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 |