Ayden's journal

list와 dict

list

list는 자바스크립트의 array와 거의 비슷한데, 대괄호 표기법으로 음수를 쓸 수 있다는 점에서 참 마음에 든다.

newList = [1, 2, 3, 4]

newList[0] = 99 # 값 변경 ( 덮어쓰기 )
newList[2] # 값 반환
newList[a:b] # a 인덱스부터 b 인덱스 직전까지의 값을 반환

 

자바스크립트와 달리 훨씬 더 직관적인 메서드 이름도 마음에 든다. 개인적으로 unshift가 0번 인덱스에 값을 넣는 행위라는 걸 기억하는 게 참 쉽지 않다.

newList.append(a) # 마지막 인덱스로 a 값 추가
newList.insert(a, b) # a번 인덱스에 b 값을 추가한다.
newList.remove(a) # 0번 인덱스부터 시작하여 가장 먼저 a와 일치하는 item 삭제
newList.clear() # list 싹 비우기
del newList[a] # a번 인덱스 삭제
del newList[a:b] # a 인덱스부터 b 인덱스 직전까지 삭제

 

다양한 함수와 키워드, 메서드를 사용하여 list에 대해 조사할 수도 있다.

len(newList) # list의 길이를 반환

2 in newList # 해당 item의 존재를 참거짓으로 반환
2 not in newList # 해당 item의 부존재를 참거짓으로 반환

newList.index(a) # a 값을 item으로 가지고 있는 첫 인덱스 번호를 반환.
                 # a 값이 list 내에 없으면 에러

newList.count(a) # list 내에 요소 a가 등장하는 횟수를 반환

 

# 기존 list가 변경됨
newList.sort()
newList.reverse()

# 새로운 list를 반환함
sorted(newList, reverse=True) # reverse=True는 역순이 아니라 '내림차순'
reversed(newList)

# 동일한 list를 반환하되, 참조형aliasing 문제 해결
list(newList)

 

dict

자바스크립트의 object와 비슷하게 "key: value" 쌍으로 구성되어있다.

newDict = {
    "name": "Ayden",
    "age": 28,
    "bornYear": 1994,
    "most Famous Work": {
        "title": "사서 에밀리 힐덴베르크의 우울",
        "language": "korean"
    }
}

newDict.items() # dict의 key와 values의 쌍으로 된 list가 반환된다
newDict.keys() # dict의 key로만 이루어진 list가 반환된다
newDict.values() # dict의 values로만 이루어진 list가 반환된다

 

기본적인 접근법은 list와 동일하다. 하지만 안전한 dict 사용을 위한 메서드가 여럿 준비되어있다.

# 다른 딕셔너리 또는 키-값 쌍을 병합하거나, 기존 항목을 업데이트
my_dict = {'a': 1, 'b': 2}
my_dict.update({'b': 3, 'c': 4})  # b는 업데이트되고 c는 추가됨
print(my_dict)  # {'a': 1, 'b': 3, 'c': 4}
# 키에 해당하는 값을 반환하며, 키가 없을 경우 기본값을 반환
my_dict = {'a': 1, 'b': 2}
print(my_dict.get('a'))  # 1
print(my_dict.get('z', '없음'))  # '없음'

 

list()와 비슷하게 파이썬의 copy 모듈의 deepcopy()를 사용하면 내부 중첩 객체까지 복사할 수 있다. 자바스크립트에는 라이브러리로만 존재하는 기능이라 조금 부럽기도 하고.

import copy

original = {'a': 1, 'b': {'c': 2}}
deep_copy = copy.deepcopy(original)

deep_copy['b']['c'] = 99
print(original)  # {'a': 1, 'b': {'c': 2}} (원본에 영향 없음)

 

블로그의 정보

Ayden's journal

Beard Weard Ayden

활동하기