본문 바로가기
Python & Django

Python의 기본 자료구조

by softserve 2021. 5. 22.
반응형

1. list

 

list는 배열(array)과 유사한 자료형으로,

 

쉽게 변경할 수 있고(mutable), 순차적인 값들의 집합(sequence)이다.

names = ["Lee", "Son", "Ki"] # list 생성 및 초기화. 

names.append("Kim") # list에 Kim을 추가

names.remove("Kim") # list에서 Kim을 삭제

names.sort() # list를 정렬

names_copy = names.copy() # list를 복사한다

names_copy.reverse() # list를 역순으로 뒤집는다.

print(f"names_copy: {names_copy}")

print(f"names: {names}")

names = ["Lee", "Son", "Ki"] # list 생성 및 초기화. 

print(names[names.index("Lee")]) # index()는 "Lee"의 위치를 반환한다.

"""
java에서는 출력시 +로 문자열과 int를 연결할 경우 문자열로 형변환이 되지만
python에서는 오류가 발생하므로 콤마( , )를 이용한다.
"""
print("Counting Lee : ", names.count("Lee")) # list에서 "Lee"의 개수를 반환한다.

print("delete " + names.pop()) # list 마지막 값을 반환 후 삭제한다. (스택에서의 pop과 같다)
			  # pop(0)와 같이 삭제할 값의 위치를 지정할 수 있다.

names.extend(["Messi", "KDB"]) # list 끝에 다른 리스트를 추가한다.

print(names)

 

2. tuple

 

list와 달리 tuple의 값은 삭제하거나 변경할 수 없다(immutable).

 

xy = (30, 60)

 

3. set

 

list가 순서가 있는 값들의 집합이라면 set은 순서가 없으며 중복이 허용되지 않는 unique한 값들의 집합이다.

 

s = {1, 2, 3, 4} # set를 생성과 동시에 초기화한다.

s.add(2) # set에 2를 추가한다. 하지만 중복이므로 추가되지 않는다.

s.remove(4) # 4를 삭제한다.

print("delete ", s.pop()) # list.pop()과 달리 인수를 입력할 수 없고, 랜덤한 위치의 값이 삭제된다.

print(f"set s has {len(s)} elements now") # len()은 리스트 등의 길이를 반환하는 함수이다.

s.update([10,11]) # list의 extend와 같다.

print(s)

 

생성

#공백 list 생성

list1 = []
list2 = list()

#공백 set 생성

set1 = set()

#공백 dictionary 생성

dic1 = {}

 

4. dict

 

dict는 key와 value의 쌍으로 이루어진 집합이다.

 

team = {"Son":"Spurs", "Kane":"ManCity", "Dele":"Spurs"} # 생성, 초기화

team["Salah"]="Liverpool" # dict에 key가 Salah, value가 Liverpool인 쌍을 추가한다.

del team["Kane"] # team에서 key가 Kane인 key-value 쌍을 삭제한다.

print(team)

# key는 고유한 값이어야 한다.

 

반응형

댓글