图解散列函数

422101-20171012161155855-873109874.png

422101-20171012161159605-2103155489.png

422101-20171012161203934-105975246.png

422101-20171012161208715-724795661.png

散列函数将输入映射到数字。

1.必须是一致的,apple每次都返回4。

2.不同的内容,映射不同的数字,输入什么都返回4就没有意义了。

散列,hash。

book = dict()

book['apple'] = 0.67
book['milk']  = 1.49
book['avocado'] = 1.49
print(book) #{'apple': 0.67, 'milk': 1.49, 'avocado': 1.49}

print(book['apple']) #0.67

检测是否已经投票

422101-20171012161213574-814973152.png

voted = {}
def check_voter(name):
    if voted.get(name):
        print ("kick them out!")
    else:
        voted[name] = True
        print ("let them vote!")

check_voter("tom")  # let them vote!
check_voter("mike") # let them vote!
check_voter("mike") # kick them out!

应用于缓存处理

422101-20171012161700637-1365601158.png

cache = {}
def get_page(url):
    if cache.get(url):
        print("缓存获取");
        return cache[url]
    else:
        print("第一次获取");
        data = get_data_from_server(url)
        cache[url] = data
        return data


def get_data_from_server(url):
    return url+"数据";

print(get_page("cnblogs.com")); #第一次获取 cnblogs.com数据
print(get_page("cnblogs.com")); #缓存获取 cnblogs.com数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值