*이 글을 읽기전에 작성자 개인의견이 있으니, 다른 블로그와 교차로 읽는것을 권장합니다.*
1. 컬렉션
파이썬에서 컬렉션은 여러 개의 데이터 항목을 하나의 단위로 관리할 수 있게 해주는 데이터 구조를 의미합니다. 파이썬에는 다른 언어들처럼 배열이라는 참조 타입이 존재하지 않는 대신, 컬렉션 데이터 타입이 있습니다. 이것은 여러 개의 데이터를 하나의 변수에 저장하고, 관리할 수 있게 해줍니다. 파이썬에서는 리스트(List), 튜플(Tuple), 집합(Set), 딕셔너리(Dictionary) 등이 기본적인 컬렉션 타입에 속합니다.
컬렉션 자료형의 종류는 다음과 같으며, 오늘은 리스트만 알아보겠습니다.
- 리스트(List)
- 튜플(Tuple)
- 집합(Set)
- 딕셔너리(Dictionary)
2. 리스트
여러 값을 하나의 변수에 저장하고 관리할 수 있게 하는 순차적인 자료구조입니다. 흔히 사용하는 리스트 용어와 동일한 뜻을 가지고 있으며, 가변적(mutable)입니다. 따라서 여러 데이터 자료를 변용시킬 때 많이 사용합니다. 입력 순서가 유지되며, 내부적으로 동적 배열로 구현되어 있습니다.
2-1. 리스트 기본구조
리스트는 [] 대괄호를 사용합니다.
#리스트 기본구조
#리스트 자료형은 []대괄호 사용
a=[1,2,3,4,5]
print(a)
#타입확인
print(type(a))
2-2. list()함수
list()함수를 통해 자료구조를 list 자료형으로 바꿉니다.
#list()함수
a1=list([1,2,3,4])
print(a1)
print(type(a1))
리스트 자료형 안의 자료값은 int형,float형,str형,bool형 가능합니다.
#리스트 자료형
a=[1,20.5,'문자열',True]
print(a)
print(type(a))
print(type(a[2]))
print(type(a[3]))
리스트 자료안의 값을 인덱스 + 인덱스 연산이 가능합니다.
#인덱스+인덱스
a1=list([1,2,3,4])
print(a1[0]+a1[2])
리스트 자료안에 리스트를 넣는 것 가능합니다.
#인덱싱 안의 인덱싱
a=[1,2,[354,654,23]]
print(a)
print(a[2])
print(a[2][1])
리스트 자료형 안의 자료값을 바꿀 수 있습니다.
#리스트 자료값 바꾸기
a=[1,2,3,4,5]
print(a)
a[0] = 315
print(a)
2-3. 리스트 인덱싱(Indexing)과 슬라이싱(Slicing)
리스트 자료형은 인덱스와 슬라이싱을 통해서 특정 자료값을 추출할 수 있습니다. 다만 인덱싱과 슬라이싱에 차이점이 존재합니다.
- 리스트 인덱싱: 리스트를 인덱싱하면 []리스트 자료형이 아닌, -1차원해서 메모리값만 추출한다.
- 리스트 슬라이싱: 차원 다운없이, 리스트 자료형 그대로 추출
#리스트 인덱싱과 슬라이싱
a=[3,2,5,4,[34,52,31]]
print(a[1])
print(a[1:2])
#리스트 인덱싱과 슬라이싱
a=[3,2,5,4,[34,52,31]]
print(a[4])
print(a[4:5])
슬라이싱을 이용하여 요소를 바꿀 경우, 리스트에 데이터만 포함합니다.
#슬라이싱으로 리스트 요소 바꿈
a=[3,2,4,5]
print(a)
a[1:2] = [3,2,1]
print(a)
빈 리스트를 저장할 경우 해당 자리의 요소는 삭제됩니다. 슬라이싱을 이용해, 리스트 자릿값을 삭제합니다.
#리스트 요소 제거
a=[1,2,3,4]
print(a)
a[2:3]=[]
print(a)
앞서 배운 del문을 이용해 제거 가능합니다.
# del문을 이용해 삭제
a=[1,2,3,4,5]
print(a)
del a[0:3]
print(a)
2-4. 리스트 연산
리스트끼리 결합가능합니다. 연산자에는 우선순위가 존재하기에, 결합할때는 왼쪽에서 오른쪽 순으로 결과값이 출력됩니다.
#리스트 결합
a=[1,2,3,4,5]
b=[6,7,8,9,10]
print(a+b)
print(b+a)
#+=기호는 변수=변수+리스트 자료형과 같은 표현입니다.
a=[10,20]
a=a+[30,40]
print(a)
a+=[30,40]
print(a)
*연산자로 리스트 자료형을 반복할 수 있습니다.
#리스트 반복
a=[1,2]
print(a*6)
리스트 자료형 안에서 다른 자료형끼리 결합은 발생하지 않습니다.
#결합오류
a=[1,2,'🍕']
print(a[1]+ a[2])
Len()함수를 이용해서 리스트 자료형 값의 갯수를 확인합니다.
#len()함수 이용
a=[1,2,3,4,5,6,7]
print(len(a))
3. 리스트(List) 자료형 메서드(Method)
리스트에서 사용할 수 있는 메서드는 다음과 같습니다.
- Append() : 추가한다는 뜻으로, 새 요소값 추가
- Extend() : 확장한다는 뜻으로, 새 요소값들 확장
- Pop() : 터지다라는 뜻으로, 마지막 요소값을 반환
- Insert() : 어떤 것을 끼워넣는다는 뜻으로, 특정 위치에 요소값을 추가
- Index() : 색인이라는 뜻으로, 특정 요소값의 위치 찾기
- Reverse() : 반대라는 뜻으로, 현재 정렬에서 반대 정렬로 바꾸기
- Sort() : 정리하다라는 뜻으로, 기본값은 오름차순, reverse=True는 내림차순
함수
- sorted() : 정리하다라는 뜻으로, sort()와 역할 동일
- count() : 리스트에서 특정 요소값의 빈도수(사용갯수)를 알려줌
3-1. Append() 메서드
리스트에 사용되며, 리스트의 끝에 새로운 요소를 추가합니다. 추가하는 요소는 값, 리스트 자료형 상관없습니다.
#append()메서드
b=[1,2,3,4,5]
print(b)
b.append(6)
b.append([1,2,3])
3-2. Extend() 메서드
리스트에 여러 요소를 추가합니다. 단, 리스트 형태로 추가합니다.
#extend()메서드
b=[1,2,3,4,5]
b.extend('a')
print(b)
b.extend(['a','b','c'])
print(b)
3-3. Pop() 메서드
리스트 마지막 요소를 삭제하고, 삭제된 요소를 반환합니다. 이때, 반환된 요소는 없어지는 것이 아닌, 해당 변수로 이동한 것입니다.
#pop()메서드
a=[10,20,30]
print(a)
b=a.pop()
print(a) #맨끝 요소 삭제
print(b) #삭제된 요소 반환
3-4. Insert() 메서드
리스트의 특정 인덱스에 요소를 1개만 추가합니다.
#inser() 메서드
a=[1,2,3,4,5]
a.insert(2,3245) # [2]자리에 3245 추가
print(a)
3-5. Index() 메서드
리스트에서 특정 값의 인덱스 위치를 찾습니다.
#index() 메서드
a=[3,2,4,5]
print(a.index(5))
3-6. reverse() 메서드
리스트의 요소들의 순서를 반대로 변경합니다. 순서만 뒤집을 뿐입니다.
#reverse() 메서드
a=[1,2,3,4,5,6,7,8,9,10]
a.reverse()
print(a)
슬라이싱을 통해서 리스트 순서를 뒤집을 수 있습니다. 슬라이싱 구조는 [start:stop:step] 형태로 이루어졌는데, start를 -1로, stop을 0으로 거꾸로 뒤집을 수 있습니다. step을 -1로 함으로써 뒤에서 앞으로 가는 방식으로 자료를 읽습니다.
#리스트 슬라이싱 뒤집기
a=[1,2,3,4,5,6,7,8,9]
print(a[::-1])
3-7. sort() 메서드
리스트의 요소 값들을 정렬합니다. 기본적으로 오름차순 형태이며, reverse=True를 통해 내림차순으로 정렬할 수 있습니다.
#sort() 메서드
#오름차순
a=[1,2,3,4,5,6,7,8,9]
a.sort()
print(a)
#내림차순
a.sort(reverse=True)
print(a)
영어의 오름차순 아스키 코드순으로, 한글은 유니코드 순으로 정렬합니다.
#영어 오름차순
a=['Hush', 'hush','basic','junior']
a.sort()
print(a)
#한글 오름차순
b=['커피','우유','스타벅스','바나프레소']
b.sort()
print(b)
3-8. sorted() 함수와 sort() 메서드 차이점
sorted() 함수는 모든 요소를 정렬한 후, 반환해 주는 함수입니다.
#sorted()함수
#오름차순
a=[1028,256,128,64,32]
print(sorted(a))
#내림차순
print(sorted(a,reverse=True))
그러나 sort() 메서드는 아스키코드, 유니코드 기반으로 정렬합니다.
3-9. count() 함수
리스트에서 특정 요소의 갯수를 반환하는 함수입니다. 리스트 내에 없는 원소는 0을 나타냅니다.
#count()함수
a=[1,2,2,3,3,3,4,4,4,4,5,5,5,5,5]
print(a.count(3))
print(a.count(5))
'Python 기초' 카테고리의 다른 글
파이썬 기초(6)-딕셔너리(Dictionary), 집합(Set) (0) | 2024.03.14 |
---|---|
파이썬 기초(5)-튜플(Tuple) 자료형 (0) | 2024.03.13 |
파이썬 예제(과제)-1. 부동소수점 문제 (0) | 2024.03.12 |
파이썬 기초(3)-문자열과 메서드(Method) (0) | 2024.03.12 |
파이썬 기초(2)-변수에 관해서 (0) | 2024.03.12 |