1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
class hashTable:
    def __init__(self):
        self.size = 10
        self.table = [[] for _ in range(self.size)]
 
    def hashfunc(self, key, size):
        return key % size
 
    def insert(self, key, value):
        position = self.hashfunc(key, self.size)
        key_exists = False
        bucket = self.table[position]
        # 동일 key 값 사용 여부 검사
        for i, kv in enumerate(bucket):
            k, v = kv
            if key == k:
                key_exists = True
                break
        # key 값 존재하는 경우 value replace
        if key_exists:
            bucket[i] = ((key, value))
        # 존재하지 않는 경우 key-value 쌍 추가
        else:
            bucket.append((key, value))
 
    def search(self, key):
        position = self.hashfunc(key, self.size)
        bucket = self.table[position]
        for i, kv in enumerate(bucket):
            k, v = kv
            if key == k:
                return v
 
    def delete(self, key):
        position = self.hashfunc(key, self.size)
        key_exists = False
        bucket = self.table[position]
        for i, kv in enumerate(bucket):
            k, v = kv
            if key == k:
                key_exists = True
                break
        if key_exists:
            del bucket[i]
            print('Key {} deleted'.format(key))
        else:
            print('Key {} not found'.format(key))
cs


underscore

  • index가 필요없는 for문을 작성할 경우에 사용 가능
for _ in range(10):
    print("hello")

enumerate

  • 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아 index 값을 포함하는 enumerate 객체를 리턴
for i, name in enumerate(['body', 'foo', 'bar']):
    print(i, name)

0 body
1 foo
2 bar
  • enumerate를 for문과 함께 사용하면 자료형의 현재 순서와 그 값을 쉽게 알 수 있음
  • for문처럼 반복되는 구간에서 객체가 현재 어느 위치에 있는지 알려주는 index 값이 필요할 때 enumerate 함수를 사용하면 매우 유용

Tuple의 packing과 unpacking

  1. Packing: Tuple에 여러 개의 값을 넣는 것
>>> a = 5
>>> b = 'test'
>>> c = a, b
>>> print(c) 
(5, 'test')
  1. Unpacking: 패킹된 Tuple에서 여러 개의 값을 꺼내오는 것
>>> a = (63, 'building')
>>> b, c = a
>>> b
63
>>> c
'building'


+ Recent posts