-
Notifications
You must be signed in to change notification settings - Fork 0
/
tools.py
46 lines (35 loc) · 1.1 KB
/
tools.py
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
import os
class NItem:
"""得到最大、最小的n个数,动态添加"""
def __init__(self, n, is_max=True, key=lambda s: s):
self._n = n
self._compare = (lambda x, y: x < y) if is_max else (lambda x, y: x > y)
self._n_list = []
self._key = key
def add_item(self, item):
if len(self._n_list) == 0:
self._n_list.append(item)
for i in range(len(self._n_list)):
if self._compare(self._key(item), self._key(self._n_list[i])):
self._n_list.insert(i, item)
break
else:
self._n_list.append(item)
while len(self._n_list) > self._n:
self._n_list.pop(0)
def add_items(self, items):
for item in items:
self.add_item(item)
def get_list(self):
return self._n_list.copy()
def clear_list(self):
self._n_list.clear()
def get_not_none(data_dict, key):
v = data_dict[key]
if v is None:
return ""
else:
return v
def make_sure_exist(path):
if not os.path.exists(path):
os.makedirs(path)