打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python实现的NoSql数据库系列
# -*-coding:utf-8-*-from python_based_db.db import Databasefrom python_based_db.db_opr_decorator import is_exist_datafrom python_based_db.message import *class AdvancedOperation(Database): def __init__(self): self.db = super().db_dict self.params = None self.data = None # 0 通用操作,帮助文档 def help(self): pass # 1 通用操作,长度计算 len key @is_exist_data def adv_len_val(self): return len(self.data) # 2 通用操作,进行某个值得统计 count key val @is_exist_data def adv_count_val(self): return self.db[self.params[0]].count(self.params[1]) # 3 通用操作,最大值 max key @is_exist_data def adv_max_val(self): return max(self.db[self.params[0]]) # 4 通用操作,最小值 min key @is_exist_data def adv_min_val(self): return min(self.db[self.params[0]]) # 5 通用操作,排序(升序和降序) sortl key,只对无序列表和字符串排序 @is_exist_data def adv_sort_val(self): data = self.db[self.params[0]] if data: if isinstance(data, str): data_list = list(data) data_list.sort() data = ''.join(data_list) elif isinstance(data, list): data = list(sorted(data)) else: print(UNSUPPORTED_SORTED) return # 排序完后要把值重新填充回去 self.db[self.params[0]] = data print(data) else: print(EMPTY_SEQ) # 6 通用操作,复制copy source_key target_key,现在这里只有浅复制 def adv_copy_val(self): data = self.db[self.params[0]] if isinstance(data, str): self.db[self.params[1]] = data[:] else: self.db[self.params[1]] = data.copy() # 7 通用操作,成员判断 in val key def adv_contain(self): return self.params[0] in self.db[self.params[1]] # 8 数值,支持精度操作 format key def adv_format_num(self): try: data = float(self.db[self.params[0]]) precision = str(self.params[1]) self.db[self.params[0]] = ('%.' + precision + 'f') % data except Exception as e: print(UNSUPPORTED_OPR) # 9 数值,支持四舍五入操作 roundn key def adv_round_num(self): try: data = float(self.db[self.params[0]]) self.db[self.params[0]] = round(data, 2) except: print(UNSUPPORTED_OPR) # 10 字符串,支持大小写转换 change key --up/low def adv_change(self): data = self.db[self.params[0]] add_params = self.params[2] if add_params == 'up': self.db[self.params[0]] = data.upper() else: self.db[self.params[0]] = data.lower() # 11 字符串,修改拼接 merge key new_val def adv_merge(self): self.db[self.params[0]] = self.db[self.params[0]] + self.params[1] # 12 支持简单的连接操作 join list/dict list/dict 这个功能可能会比较复杂 def adv_join(self): pass
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Python 读取DBF/FPT 文件 [Python俱乐部]
序列化二叉树
DL之DNN:自定义MultiLayerNet(5*100+ReLU+SGD/Momentum/AdaGrad/Adam四种最优化)对MNIST数据集训练进而比较不同方法的性能
一个超参数优化工具:Scikit Optimize
lightGBM多分类应用于选股全流程(notebook+数据下载)
数学推导 纯Python实现机器学习算法13:Lasso回归
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服