Python

[Python] 파이썬 리스트, 튜플, 딕셔너리 사용법

현기 2022. 7. 25. 21:39

리스트 [ ] : 말 그대로 목록 이라는 뜻으로 값을 일렬로 늘어놓은 형태다. 

튜플 ( ) : 리스트와 비슷하지만 저장된 요소를 변경, 추가, 삭제가 불가능하다.

딕셔너리 { } : 키 : 값의 형식을 가지고 있다. 연관된 값을 묶어서 저장하는 자료형이다. 


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)만을 사용해서 간단하게 스택과 큐를 구현할 수 있다.

 

 


참고 문헌 : 파이썬 코딩도장