자료형
리스트
list 는 여러 값을 넣을 수 있는 자료형이다. 순서가 있고(인덱스 기반 접근), 중복이 가능하며, 수정이 가능하다.
subway = ["유재석", "조세호"]
print(subway) # ['유재석', '조세호']
list 자료형은 [ ] (대괄호 쌍)으로 감싸서 초기화한다.
subway.append("하하")
subway.insert(1, "하하")
print(subway) # ['유재석', '하하', '조세호', '하하']
append() 는 마지막에 요소를 추가하고, insert() 는 원하는 index 에 요소를 추가한다.
subway.pop() # '하하'
print(subway) # ['유재석', '하하', '조세호']
pop() 은 마지막 요소를 삭제하고 반환한다.
subway.count("유재석") # 1
subway.index("유재석") # 0
count() 는 포함 요소 개수를 반환하고, index() 는 첫 요소를 찾아 index 를 반환한다. 단, 찾는 요소가 없을 때는 에러가 발생한다.
num_list = [5, 2, 4, 3, 1]
num_list.sort()
print(num_list) # [1, 2, 3, 4, 5]
num_list.reverse()
print(num_list) # [5, 4, 3, 2, 1]
sort() 는 리스트를 정렬하고, reverse() 는 리스트를 역순으로 뒤집는다.
mix_list = ["조세호", 20, True]
num_list.extend(mix_list)
print(num_list) # [5, 4, 3, 2, 1, '조세호', 20, True]
extend() 는 리스트에 리스트를 더할 수 있고, + 연산으로도 가능하다. 참고로, 리스트에는 * (곱하기) 연산도 가능하다.
num_list.clear()
print(num_list) # []
clear() 는 리스트의 모든 요소를 제거한다.
튜플
tuple 은 변경 불가능한 list 자료형이다. 순서가 있고(인덱스 기반 접근), 중복이 가능하며, 수정이 불가능하다.
menu = ("돈까스", "치즈까스")
print(menu) # ('돈까스', '치즈까스')
tuple 자료형은 ( ) (소괄호 쌍)으로 감싸서 초기화된다.
print(menu[0]) # 돈까스
# menu.append("생선까스") 오류!
인덱스 기반으로 접근이 가능하고, 수정이 불가능하기 때문에 append 나 sort 등의 함수를 사용할 수 없다.
name, age, hobby = "김종국", 20, "코딩"
print(name, age, hobby) # 김종국 20 코딩
해당 방식으로 변수를 초기화할 수 있다.
세트
set 자료형은 수학의 집합과 비슷한 개념이다. 순서가 없고, 중복이 불가능하며, 수정이 가능하다.
my_set = {1, 2, 3, 3, 3}
print(my_set) # {1, 2, 3}
set 자료형은 { } (중괄호 쌍)으로 감싸서 초기화한다. 만약 중복된 것이 있다면 하나만 남는다.
# print(my_set[0]) 오류!
print(1 in my_set) #True
print(5 in my_set) #False
순서가 없기 때문에, 인덱스나 슬라이스로 값을 읽는 것이 불가능하다. 대신, in, not in을 사용하여 set 안에 값이 있는지를 조회할 수 있다.
my_set.add("김태호")
print(my_set) # {1, 2, '김태호', 3}
my_set.remove("김태호")
print(my_set) # {1, 2, 3}
수정이 가능하기 때문에, add, remove 등의 함수를 사용할 수 있다. add() 는 요소를 추가하지만 순서는 무작위이다.
사전
dictionary 는 C나 Java의 map이나 hash와 비슷한 key:value 형태의 자료형이다. 순서가 없고, key의 중복이 불가능하며, 수정이 가능하다.
cabinet = {3: "유재석", 100: "김태호"}
print(cabinet) # {3: '유재석', 100: '김태호'}
dictionary 자료형은 { } (중괄호 쌍)과 key:value 형태의 값으로 초기화한다.
print(cabinet[3]) # 유재석
print(cabinet.get(3)) # 유재석
# print(cabinet[5]) 오류!
print(cabinet.get(5)) # None
print(cabinet.get(5, "사용 가능")) # 사용 가능
[ ] 와 get() 에 key 를 넣으면 value 가 출력된다. 주의할 점은 [ ] 를 사용할 때 존재하지 않는 key 를 넣게되면 오류가 발생한다는 것이다. 반면에 get() 은 None 이 출력되고 이외에 다른 문구가 출력되도록 할 수도 있다.
print(3 in cabinet) # True
print(5 in cabinet) # False
in 을 쓰면 해당 key 가 있는지 찾아서 True 나 False 를 반환한다.
cabinet = {"A-3": "유재석", "B-100": "김태호"}
print(cabinet) # {'A-3': '유재석', 'B-100': '김태호'}
cabinet["A-3"] = "김종국"
cabinet["C-20"] = "조세호"
print(cabinet) # {'A-3': '김종국', 'B-100': '김태호', 'C-20': '조세호'}
dictionary 는 해당 key 의 value 를 수정할 수 있고, key:value 쌍을 추가할 수 있다.
cabinet.keys() # dict_keys(['A-3', 'B-100', 'C-20'])
cabinet.values() # dict_values(['김종국', '김태호', '조세호'])
cabinet.items() # dict_items([('A-3', '김종국'), ('B-100', '김태호'), ('C-20', '조세호')])
keys() 는 key 값들을, values() 는 value 값들을, items() 는 key:value 값들을 나타낸다.
del cabinet["A-3"] # del : 요소 삭제
print(cabinet) # {'B-100': '김태호', 'C-20': '조세호'}
cabinet.clear() # clear : 모든 요소 제거
print(cabinet) # {}
del 함수를 사용하여 특정 key 의 key:value를 삭제할 수 있고, clear() 는 모든 요소를 제거한다.
'언어 > Python' 카테고리의 다른 글
[Python] mutable 객체와 immutable 객체, 얕은 복사와 깊은 복사 (0) | 2022.12.30 |
---|