1. 리스트(list)
자료형의 집합을 표현할 수 있는 자료형
1) 생김새
a = []
b = [1, 2, 3]
C = ['Life', 'is', 'too', 'short']
d = [1, 2, 'Life', 'is']
e = [1, 2, ['Life', 'is']]
- a = 빈 리스트
- b = 숫자가 들어 있는 리스트
- c = 문자열이 들어 있는 리스트
- d = 숫자와 문자열이 들어 있는 리스트
- e = 숫자와 문자열 리스트가 들어 있는 리스트
2) 인덱싱
리스트에서도 문자열처럼 인덱싱할 수 있다.
a = {1, 2, 3]
위와 같은 리스트가 있을 때 a[0] = 1이 된다. 인덱스는 0부터 사용한다는 것을 항상 기억해야 한다.
a[0] + a[2] = 4 a[0]은 1이고, a[2]는 3이므로 1 + 3이 되어서 4가 된다.
a[-1] = 3 "-" 인덱스는 문자열에서와 같이 리스트에서도 마지막 요소부터 시작하는 인덱싱을 한다.
a = [1, 2, 3, ['a', 'b', 'c']]
리스트 안에 있는 리스트는 a[-1][0]으로 인덱싱을 할 수 있다. 앞에 나온 [-1]은 마지막 요소인 리스트 ['a', 'b', 'c']이고, 뒤에 나온 [0]은 마지막 요소인 리스트에서 첫 번째 요소를 리턴한다. 그래서 'a'를 리턴한다.
3) 슬라이싱
리스트에서도 문자열처럼 슬라이싱을 할 수 있다.
a = [1, 2, 3, 4, 5]
print(a[0:2])
- 출력 : [1, 2]
이때 출력된 리스트는 새로운 리스트다. 위 예제에서 봤듯이 문자열에서 했던 갯과 사용법이 완전히 동일하다.
(1) 중첩된 리스트에서 슬라이싱
a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
print('a[2:5] : ', a[2:5])
print('a[3][:2] :', a[3][:2])
- 출력 : a[2:5] : [3, ['a', 'b', 'c'], 4]
- 출력 : a[3][:2] : ['a', 'b']
a[3]은 ['a', 'b', 'c'] 이다. 따라서 a[3][2]는 a[3]의 첫 번째 요소부터 세 번째 요소 직전까지의 값을 새로운 리스트로 출력해 준다.
4) 연산
리스트도 문자열과 같이 +(결합)를 사용해 더할 수 있고, *를 사용해서 반복할 수 있다.
a = [1, 2, 3]
b = [4, 5, 6]
print(a + b)
- 출력 : [1, 2, 3, 4, 5, 6]
a = [1, 2, 3]
print(a * 2)
- 출력 : [1, 2, 3, 1, 2, 3]
5) 길이
문자열에서 사용한 len() 함수는 리스트, 튜플, 딕셔너리에도 사용할 수 있는 함수다.
a = [1, 2, 3]
print(len(a))
- 출력 : 3
6) 수정, 삭제
(1) 수정
a = [1, 2, 3]
a[2] = 4
print(a)
- 출력 : [1, 2, 4]
a[2]의 요소가 바뀐다. 마치 변수를 재할당하는 것과 비슷하게 리스트 인덱스에 값을 재할당해 주면 수정할 수 있다.
(2) 삭제
a = [1, 2, 3]
del a[1]
print(a)
- 출력 : [1, 3]
del 함수는 파이썬이 자체적으로 가지고 있는 삭제 함수이다. 리스트 삭제에는 remove와 pop 함수를 사용할 수 있다.
7) 관련 함수
(1) append
append(a)는 리스트에 요소를 추가하는 함수로 a를 리스트의 맨 마지막에 요소를 추가한다. 요소를 추가할 때는 모든 자료형이 들어갈 수 있다.
a = [1, 2, 3]
a.append(4)
print(a)
- 출력 : [1, 2, 3, 4]
(2) sort
리스트의 요소를 오름차순으로 정렬한다. 문자 역시 알파벳 순서로 정렬할 수 있다.
a = [4, 1, 3, 2]
a.sort()
print(a)
- 출력 : [1, 2, 3, 4]
(3) reverse
reverse 함수는 리스트를 역순으로 뒤집는다. 현재 리스트 자제 그대로 거꾸로 뒤집는다.
a = [a, c, b]
a.reverse()
print(a)
- 출력 : ['b', 'c', 'a']
(4) index
index(a) 함수는 리스트 a 값이 있으면 a의 인덱스 값을 리턴 단, 리스트에 a 값이 없으면 오류가 난다.
a = ['a', 'c', 'b']
print(a.index('b'))
- 출력 : 2
(5) insert
insert(a, b)는 리스트의 a번째 위치에 b를 삽입하는 함수
a = [1, 2, 3]
a.insert(0, 4)
print(a)
- 출력 : [4, 1, 2, 3]
(6) remove
remove(a)는 리스트에서 첫 번째로 나오는 a를 삭제하는 함수
a = [1, 2, 3, 1, 2, 3,]
a.remove(3)
print(a)
- 출력 : [1, 2, 1, 2, 3]
(7) pop
pop()은 리스트의 맨 마지막 요소를 리턴하고 그 요소를 삭제하는 함수
pop(x)는 리스트의 x번째 요소를 리턴하고 그 요소를 삭제하는 함수
a = [1, 2, 3]
a.pop()
print(a)
- 출력 : [1, 2]
(8) count
count(x)는 리스트 안에 x가 몇 개 있는지 조사하여 그 개수를 리턴하는 함수
a = [1, 2, 3, 1]
print(a.count(1))
- 출력 : 2
1이라는 값이 a 리스트에 2개 들어 있어 2를 리턴한다.
(9) extend
extend(x)에서 x에는 리스트만 올 수 있고, 원래의 a 리스트에 x 리스트를 더하게(결합) 된다.
a = [1, 2, 3]
a.extend([4, 5])
print(a)
- 출력 : [1, 2, 3, 4, 5]
a.extend([4, 5])는 a += [4, 5]와 같다.
a = [1, 2, 3]
a.append([4, 5])
print(a)
- 출력 : [1, 2, 3, [4, 5]]
append에 리스트가 들어갔을 때와 차이가 있다. append에 리스트가 들어갔을 때는 리스트 자체를 결합한다.
2. 튜플(tuple)
리스트는 [], 튜플은 ()로 묶는다.
리스트는 요솟값의 생성, 삭제, 수정이 가능하지만, 튜플은 요솟값을 바꿀 수 없다.
a = ()
b = (1,)
c = (1, 2, 3)
d = 1, 2, 3
e = ('a', 'b', ('ab', 'cd))
- a = 빈 튜플
- b = 숫자 1개가 들어있는 튜플, 튜플에 1개의 요소만 가질 때는 요소 뒤에 쉼표를 반드시 붙여야 한다.
- c = 숫자 요소들을 가진 튜플
- d = 숫자 요소들을 가진 튜플, 리스트와는 다르게 ()를 생략 가능
- e = 문자, 문자열, 튜플 요소를 가진 튜플
1) 삭제, 수정
튜플은 삭제, 수정을 할 수 없기 때문에 시도하면 오류가 안가. 튜플은 읽는 것만 가능
2) 관련 함수
리스트와 안전히 동일 하기 때문에 간단하게 코드만 본다.
(1) 인덱싱
a = (1, 2, 'a', 'b')
print(a[0])
- 출력 : 1
(2) 슬라이싱
a = (1, 2, 'a', 'b')
print(a[1:])
- 출력 : (2, 'a', 'b')
(3) 더하기
a = (1, 2, 'a', 'b')
b = (3, 4)
c = a + b
print(c)
- 출력 : (1, 2, 'a', 'b', 3, 4)
(4) 곱하기
a = (3, 4)
b = a * 2
print(b)
- 출력 : (3, 4, 3, 4)
(5) 길이
a = (1, 2, 'a', 'b')
print(len(a))
- 출력 : 4
'SK Shieldus Rookies 19th > 인프라 활용을 위한 파이썬' 카테고리의 다른 글
[SK shieldus Rookies 19기][Python] - 자료형 4 (0) | 2024.03.14 |
---|---|
[SK shieldus Rookies 19기][Python] - 자료형 3 (1) | 2024.03.13 |
[SK shieldus Rookies 19기][Python] - 자료형 1 (0) | 2024.03.10 |
[SK shieldus Rookies 19기][Python] - 실습 환경 구성 (0) | 2024.03.08 |
[SK shieldus Rookies 19기][Python] - 시작 (1) | 2024.03.07 |
댓글