Ai
2 Star 0 Fork 1

jackfrued/python2004

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
example02.py 1.17 KB
一键复制 编辑 原始数据 按行查看 历史
jackfrued 提交于 2020-11-19 16:14 +08:00 . 使用mysqlclient操作MySQL数据库
"""
哈希存储:通常情况下如果能够使用一个优质的哈希函数(哈希码冲突的概率很低),
那么哈希存储的性能将会非常的优异,基本上是常量级时间复杂度实现读写操作。
如果发生了哈希冲突,就需要使用对应的算法解决哈希冲突,Python中的集合使用了
开放地址法的方式来解决哈希冲突。
MySQL支持很多种存储引擎,5.5+版本默认是用InnoDB引擎
~ MyISAM
~ Memory -----> 哈希索引
"""
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f'{self.name}: {self.age}'
def __hash__(self):
return hash((self.name.lower(), self.age))
def __eq__(self, other):
return self.name.lower() == other.name.lower() and self.age == other.age
def main():
set1 = {1, 1, 2, 2, 2, 1, 3, 3, 3, 5}
print(set1)
set2 = {
Person('WangDachui', 20), Person('WangDachui', 18),
Person('WangDachui', 20), Person('WANGDachui', 20)
}
print(len(set2))
for person in set2:
print(id(person))
print(person)
if __name__ == '__main__':
main()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/jackfrued/python2004.git
git@gitee.com:jackfrued/python2004.git
jackfrued
python2004
python2004
master

搜索帮助