리스트 [ ] : 말 그대로 목록 이라는 뜻으로 값을 일렬로 늘어놓은 형태다.
튜플 ( ) : 리스트와 비슷하지만 저장된 요소를 변경, 추가, 삭제가 불가능하다.
딕셔너리 { } : 키 : 값의 형식을 가지고 있다. 연관된 값을 묶어서 저장하는 자료형이다.
1. 리스트 ( list )
리스트는 문자열, 실수, 정수, 불 등 모든 자료형을 저장할 수 있다.
대괄호 [ ]를 사용하여 선언한다.
a = [10, 'superman', True]
1. 주요 메서드
메서드명 | 기능 | 예시 |
append(요소) | 요소 하나를 추가 | list.append(10) |
extends(리스트) | 리스트를 연결하여 확장 | list.extend( [30,40] ) |
insert(인덱스, 요소) | 특정 인덱스에 요소 추가 | list.insert(2, 10) |
pop(인덱스) | 마지막 요소 또는 특정 인덱스 요소 삭제 | list.pop(), list.pop(0) |
remove(요소) | 특정 값을 찾아서 삭제 (중복시 처음 값) | list.remove(20) |
index(요소) | 특정 값의 인덱스 구하기 | list.index(20) |
count(요소) | 특정 값의 개수 구하기 | list.count(20) |
reverse() | 요소의 순서를 반대로 뒤집는다. | list.reverse() |
sort() | 요소 오름차순 정렬 | list.sort() |
clear() | 리스트 모든 요소 삭제 | list.clear() |
copy() | 리스트의 모든 요소를 복사한다. | list2.copy() |
2. 리스트 슬라이싱
리스트와 튜플같은 시퀀스 자료형(순서가 있는 자료형)은 슬라이스라는 기능을 사용할 수 있다.
시퀀스 객체의 일부를 잘라낼 수 있다. 자주 사용되는 유용한 기능이니 잘 숙지하자.
list[ 시작 인덱스 : 끝 인덱스 : 증가폭 ] 같이 사용한다.
a = [10,20,30,40,50,60]
print(a[0:3])
print(a[1:3])
print(a[0:5:2])
print(a[-1]) #-1은 마지막 원소
print(a[5:0:-1])
print(a[::]) #길이를 모를경우 생략가능
del a[2:5] 와 같이 삭제도 가능하다.
3. 리스트 컴프리헨션
파이썬의 리스트가 특이한 점은 리스트 안에 for 반복문과 if 조건문을 사용할 수 있다.
문법이 다소 복잡하지만 코드를 한 줄로 줄일 수 있다는 장점이 있다.
a = [i for i in range(10)]
b = [i for i in range(10) if i % 2 == 0] #조건문도 줄 수 있다.
리스트 표현식에 for가 여러 개일 때 처리 순서는 뒤에서 앞 순이다.
2. 튜플 ( tuple )
리스트와 비슷하지만 요소의 변경, 추가, 삭제가 불가능하다.
즉, 읽기 전용 리스트라고 할 수 있다. 소괄호 ( )를 사용하여 선언한다.
튜플은 리스트와 달리 내용을 변경할 수 없기 때문에 내용을 변경하는 append 같은 메서드는사용할 수 없고, 요소의 정보를 구하는 메서드만 사용할 수 있다.
a = (10, 20, 30)
튜플을 한 개만 사용할 경우 a = (10,) 같이 쉼표를 넣어주면 튜플로 인식한다.
3. 딕셔너리 ( dict )
키에는 값을 하나만 지정할 수 있으며 키-값 형태를 가지고 있다.
리스트와 튜플은 값 여러 개를 일렬로 저장할 뿐, 값끼리 연관 관계가 없었다.
딕셔너리는 마치 사전에서 단어를 찾듯이 값 마다 이름을 붙여서 저장하는 방식이다.
보통 딕셔너리와 같은 키-값 형태의 자료형을 해시, 해시맵, 해시테이블 등으로 부르기도 한다.
중괄호 { }를 사용하여 선언한다.
lux = {'health' : 490, 'mana' : 334, 'armor' : 18.72}
1. 키 이름이 중복되면?
키가 중복되면 가장 뒤에 있는 값만 사용한다. (중복 허용x)
lux = {'health' : 490,'health' : 800, 'mana' : 334, 'armor' : 18.72}
2. 키의 자료형
키에 정수, 실수, 불을 사용할 수 있고 섞어서 사용도 가능하다.
값에는 리스트, 딕셔너리 등을 포함하여 모든 자료형을 사용할 수 있다.
하지만 키에는 리스트와 딕셔너리는 사용할 수 없다.
x = {100:'hundred', False:0, 3.5:[3.5, 3.5]} # 가능
x = {[10,20] :'hundred'} # Error
x = {{'a':20}:'hundred'} # Error
3. 주요 활용법
lux = {'health' : 490, 'mana' : 334, 'armor' : 18.72}
# 키에 값 할당하기
lux['health'] = 2000
# 없는 키에 값 할당시 키가 추가되고 값이 할당
lux['speed']=250
# 딕셔너리에 키가 있는지 확인하기
'health' in lux
# 딕셔너리 키 개수 구하기
len(lux)
+ 파이썬 리스트로 간단하게 스택 & 큐 구현
1. 스택
2. 큐
리스트에는 pop()이라는 메서드가 있다.
그냥 pop()을 쓰면 스택 구조로 사용할 수 있다.
메서드의 매개변수로 pop(0)을 주면 큐처럼 맨 앞의 원소가 제거된다.
따라서 pop(), pop(0)만을 사용해서 간단하게 스택과 큐를 구현할 수 있다.
참고 문헌 : 파이썬 코딩도장
'Python' 카테고리의 다른 글
[Python] 파이썬 기후 데이터 시각화하기 (Indian Summers, plt, 선 차트, 막대 차트, 파이 차트) (4) | 2023.04.17 |
---|---|
[Python] 학생 성적관리 프로그램 (파일 사용) (0) | 2022.07.28 |
[Python] 파이썬 지뢰찾기 구현 (2차원 리스트) (3) | 2022.07.27 |
[Python] 로또 당첨번호 (별찍기 예제) (0) | 2022.07.26 |
[Python] 파이썬 별찍기 for, while문 (0) | 2022.07.26 |