
입력 순서가 유지되며, 내부적으로는 동적 배열로 구현되어 있다.
7장에 자세히 소개 될 것이다!
7장 링크:
리스트를 사용하면 사실상 스택,큐를 사용할지 고민하지 않아도 되며 스택과 큐에서 사용 가능한 모든 연산을 함께 제공한다.
리스트에서 첫번째 요소를 꺼내는 pop(0) 는 O(n)이므로 큐의 연산을 사용할 때는 주의해야한다.
그러기에 Deque(데크) 같은 자료형으로 성능을 높힐 수 있는데
이는 9장에서 설명하도록한다
9장 링크:
a = list()
#or
a = []
######append
a = [1,2,3]
a.append(4)
print(a)
### result [1,2,3,4]
#####a.insert
a.insert(3,5) #3번 인덱스에 5를 넣어라
print(a)
### result [1,2,3,5,4]
#####slicing
a[1:3]
print(a)
### result [2,3,5]
##### 리스트의 요소 삭제 (del)
def a[1]
print(a)
### result [1,3,5,4]
##### 리스트의 요소 삭제 (pop)
a.pop(3)
print(a)
### result [1,3,5]
파이썬의 리스트는 연속된 공간에 요소를 배치하는 배열의 장점과 다양한 타입을 연결해 배치하는 연결 리스트의 장점을 모두 취한 듯한 형태를 띠며, 실제로 리스트를 잘 사용하기만해도 배열과 연결 리스트가 필요 없을 정도롤 강력하기 파이썬을 원시 타입 자료형은 제공하지도 않는다.
a = dict()
a = {}
##### 키 value 설정
a = {'key1':'value1', 'key2':'value2', 'key3':'value3'}
print(a)
### result {'key1':'value1', 'key2':'value2', 'key3':'value3'}
##### 새로운 키 value 등록
a['key4'] = 'value4'
print(a)
### result {'key1':'value1', 'key2':'value2', 'key3':'value3','key4':'value4'}
###### 키가 존재하는지 존재하지 않는지에
for k,v in a.items():
print(k,v)
### result key1 value1
### key2 value2
1) defaultdict 객체
존재하지 않는 키를 조회하는 경우, 에러 메시지를 출력하는 대신 디폴트 값을
기준으로 해당 키에 대한 딕셔너리 아이템을 생성해준다.
a.collections.defaultdict(int)
a['A'] = 5
a['B'] = 4
a['C'] += 1
#C에서 에러가 나야겠지만 에러가 나지 않은 체 디폴트인 0에서 1을 더한 1의 value를 가진 아이템이 생성된다.
2) Counter 객체
아이템에 대한 개수를 계산하여 딕셔너리로 리턴한다.
a = [1,2,3,4,5,5,5,6,6]
b = a.collections.Counter(a)
print(b)
### result Counter({5:3, 6:2, 1:1, 2:1, 3:1, 4:1})
##### 가장 빈도가 높은 것은?
b.most_common(1)
[(5,3)]
3) OrderedDict 객체
입력값을 부여할 경우 OrderedDict는 입력 그대로 순서가 유지된다.