[파이썬] 자료형 (리스트, 튜플, 딕셔너리, 집합)
1. 리스트 (List)
[]로 묶이며, 여러 자료형이 동시에 들어갈 수 있다.
list = ['hi', 1, True]
중복된 값이 허용된다. 리스트 내에 또다른 리스트가 포함될 수도 있다. C++의 n차 배열 같다.
list = [1, 1, 1, [1, 2, 3]]
리스트 관련 함수
리스트의 맨 뒤에 원소를 추가하려면 append() 함수, extend() 함수, += 연산자를 사용한다.
list = [1, 2, 3, 4]
list.append(5)
print(list) #[1, 2, 3, 4, 5]
list+=[6, 7]
print(list) #[1, 2, 3, 4, 5, 6, 7]
list.extend([8, 9])
print(list) #[1, 2, 3, 4, 5, 6, 7, 8, 9]
원하는 위치에 원소를 추가하려면 insert() 함수를 사용한다. insert(a, b)는 a위치에 b를 삽입한다는 의미이다. a가 리스트 길이보다 길다면 맨 뒤에 원소가 삽입된다.
list = [1, 2, 3, 4]
list.insert(1, "new")
print(list) #[1, "new", 2, 3, 4]
del a[x]는 a리스트의 x번째 원소를 제거한다.
list = [1, 2, 3, 4]
del list[1]
print(list) #[1, 3, 4]
remove(x)는 리스트에서 첫번째로 나오는 x를 제거한다. x가 없다면 에러를 반환한다.
list = [1, 2, 1, 3, 4]
list.remove(1)
print(list) #[2, 1, 3, 4]
index(x) 함수는 리스트 내의 x라는 원소의 인덱스를 반환한다. x가 없다면 에러를 반환한다.
list = [1, 2, 3, 4]
print(list.index(3)) #2
pop(x) 함수는 리스트의 x번째 원소를 반환하고 제거한다. x값을 명시 안하면 맨 마지막 값을 pop한다.
list = [1, 2, 3, 4, 5]
print(list.pop()) #5
print(list) #[1, 2, 3, 4]
2. 튜플 (Tuple)
튜플을 리스트와 거의 동일하지만, ()로 묶이고 원소 수정이 불가하다. 또한 ()는 생략 가능하다.
3. 딕셔너리 (Dictionary)
해시 자료구조를 파이썬에서 구현한 것이다. {}로 묶이며 ‘key’:’value’ 형태로 이루어진다.
딕셔너리의 key는 유일해야 하며, mutable한 값을 사용할 수 없다. 따라서, key에는 튜플은 들어갈 수 있지만 리스트는 들어갈 수 없다.
또한 딕셔너리를 순서(인덱싱)가 없다.
딕셔너리 쌍 추가는 다음과 같다.
dict = {'name':'yuntreee'}
dict['age']=25
print(dict) #{'name': 'yuntreee', 'age': 25}
딕셔너리 관련 함수
del a[x]를 하면 키값이 x인 쌍을 제거한다.
dict = {1:'one', 2:'two', 3:'three'}
del dict[1]
print(dict) #{2: 'two', 3: 'three'}
a.keys() 함수는 a딕셔너리의 key값만 모아서 dict_keys라는 객체를 반환한다.
a.values() 함수는 a딕셔너리의 value값만 모아서 dict_values라는 객체를 반환한다.
a.items() 함수는 a딕셔너리의 key와 value쌍을 튜플로 묶은 dict_items 라는 객체를 반환한다.
dict = {1:'one', 2:'two', 3:'three'}
print(dict.keys()) #dict_keys([1, 2, 3])
print(dict.values()) #dict_values(['one', 'two', 'three'])
print(dict.items()) #dict_items([(1, 'one'), (2, 'two'), (3, 'three')])
key값으로 value를 얻기 위해서는 a[key] 혹은 a.get(key) 을 사용한다.
단, 해당 key가 없을 때 a[key]는 에러가 발생하고 a.get(key)는 None을 반환한다.
dict = {1:'one', 2:'two', 3:'three'}
print(dict[1]) #one
print(dict.get(1)) #one
x라는 키가 a딕셔너리에 있는지 확인하기 위해 in 함수를 사용한다.
dict = {1:'one', 2:'two', 3:'three'}
print(1 in dict) #True
print(10 in dict) #False
4. 집합 (set)
집합 관련된 것들을 쉽게 다루기 위한 자료형이다. 집합은 중복을 허용하지 않고 순서가 없다.
set() 함수를 이용하여 집합을 생성할 수 있다.
list1 = [1, 2, 3, 4]
str = "Hello"
s1 = set(list1)
print(s1) {1, 2, 3, 4}
s2 = set(str)
print(s2) {'l', 'o', 'H', 'e'}
집합 관련 함수
add() 함수를 통해 집합에 1개의 값을 추가할 수 있다. 여러 개의 값을 추가할 때는 update() 함수를 사용한다.
특정 값을 제거할 때는 remove() 함수를 사용한다.
s1=set([1, 2, 3])
s1.add(4)
print(s1) {1, 2, 3, 4}
s1.update([5, 6])
print(s1) {1, 2, 3, 4, 5, 6}
s1.remove(6)
print(s1) {1, 2, 3, 4, 5}
집합 연산
교집합은 &, 합집합은 | , 차집합은 - 연산으로 구할 수 있다. |
댓글남기기