๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๊ฐœ๋ฐœ/Python

Advanced Python #5 [Notion : 1/4]

Collections Library

  • Collections
  • Data Structure
  • Deque
  • Counter
  • orderedDict
  • defaultdict
  • namedtuple
# Module Importing
from collections import deque, Counter, OrderedDict, defaultdict, namedtuple

๐Ÿ‘‰ Deque

# Deque
deque_list = deque()
for i in range(5):
	deque_list.append(i)

print(deque_list)

# deque([0,1,2,3,4])
deque_list.appendleft(10)
deque_list

# deque([10,0,1,2,3,4])
deque_list.rotate(2)
deque_list

# deque([3, 4, 10, 0, 1, 2])

deque_list.rotate(2)
deque_list

# deque([1, 2, 3, 4, 10, 0])

deque_list.extend([5,6,7])
deque_list

# deque([1, 2, 3, 4, 10, 0, 5, 6, 7])

deque_list.extendleft([8,9])
deque_list

# deque([9, 8, 1, 2, 3, 4, 10, 0, 5, 6, 7])

print(deque_list)
print(deque(reversed(deque_list)))

# deque([9, 8, 1, 2, 3, 4, 10, 0, 5, 6, 7])
# deque([7, 6, 5, 0, 10, 4, 3, 2, 1, 8, 9])

๐Ÿ‘‰ Ordered Dict

# Ordered Dict
d = OrderedDict()
d['x'] = 100
d['y'] = 200
d['z'] = 300
d['a'] = 400
for k, v in d.items():
    print(k, v)

# x 100
# y 200
# z 300
# a 400
for k, v in OrderedDict(sorted(d.items(), key=lambda t: t[0])).items():
    print(k, v)

# a 400
# x 100
# y 200
# z 300
for k, v in OrderedDict(sorted(d.items(), key=lambda t: t[1])).items():
    print(k, v)

# x 100
# y 200
# z 300
# a 400

๐Ÿ‘‰ DefaultDict

d = defaultdict(lambda: 0)
print(d['test'])

# 0
letters = "dingadingading"
letters_dict = defaultdict(int)
for k in letters:
	letters_dict[k] += 1

letters_dict

# defaultdict(int, {'d': 3, 'i': 3, 'n': 3, 'g': 3, 'a': 2})

๐Ÿ‘‰ Counter

c = Counter()
c = Counter('gallahad')
print(c)

# Counter({'a': 3, 'l': 2, 'g': 1, 'h': 1, 'd': 1})
m = Counter({'red':4, 'blue':3})
print(m)
print(list(m.elements()))

# Counter({'red': 4, 'blue': 3})
# ['red', 'red', 'red', 'red', 'blue', 'blue', 'blue']
n = Counter(dogs=4, cats=2)
print(n)
print(list(n.elements()))

# Counter({'dogs': 4, 'cats': 2})
# ['dogs', 'dogs', 'dogs', 'dogs', 'cats', 'cats']

๐Ÿ‘‰ namedTuple

# namedTuple
point = namedtuple('point', ['x', 'y'])
p = point(11, y=23)
print(p)

# point(x=11, y=23)
print(p[0])
print(p[1])
print(p[0]+p[1])

# 11
# 23
# 34
x, y = p
print(x, y)
print(p.x, p.y)
print(point(x=10, y=20))

# 11 23
# 11 23
# point(x=10, y=20)

'๊ฐœ๋ฐœ > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Advanced Python #4 [Notion : 1/3]  (0) 2023.04.30
Advanced Python #3 [Notion : 1/3]  (0) 2023.04.30
Advanced Python #2 [Notion : 1/3]  (0) 2023.04.30
Advanced Python #1 [Notion : 1/2]  (0) 2023.04.30