반응형
개인 공부를 위해 모았으며 별도의 설명은 생략
<리스트>
# list
len(a) #O(1)
a[i] #O(1)
a[i:j] #O(k)
elem in a #O(n)
a.count(elem) #O(n)
a.index(elem) #O(n)
a.append(elem) #O(1)
a.insert(idx, elem) #O(n)
a.pop() #O(1)
a.pop(0) #O(n)
del a[i] #O(n)
a.remove(elem) #O(n)
a.sort() #O(nlogn)
min(a)/max(a) #O(n)
a.reverse() #O(n)
<딕셔너리>
## dict
len(a) #O(1)
a[key] #O(1)
a[key] = value #O(1)
key in a #O(1)
del a['key']
## dictionary iteration
a.values() ## return list
a.items() ## return list[(key,value)]
for k, v in a.items()
for value in a.values()
collections.defaultdict(int/list/set)
# Counter --> return dict / key : item, value: the number of the item
collections.Counter(a)
a.most_common(n) # n is not index but number.
Counter의 편리한 점은
Counter 끼리의 덧셈 또는 뺄셈이 가능하다.
또 그 때마다 자동으로 개수를 새로 세어 개수 순으로 재정렬한다.
import collections
a = collections.Counter([1,1,1,1,2,2,3])
b = collections.Counter([1,1,1])
print(a+b)
print(a-b)
print(b-a)
>>> Counter({1: 7, 2: 2, 3: 1})
>>> Counter({2: 2, 1: 1, 3: 1})
>>> Counter()
댓글