#!/usr/bin/python3
# -*- coding: utf-8 -*-
'''
在python中常用的数据容器有 列表， 元祖， 集合， 字典

列表就是C中的数组，构造方式相同，构造原理相同
元祖是不可变的列表

字典是经过 哈希函数 计算后的特殊列表
集合是字典的特殊形式


字典 是通过 key --> hash（key） --> 列表
hash函数就是计算 key的数字指纹的方式，通过计算出数字指纹，将对应的value存放
到对应的列表地址中，但是由于列表的长度的限制，可能会出现冲突现象。
在 hash时，1234 和 1234.0 会散列到相同的地址

字典的原理和布隆过滤器原理基本相同。
布隆过滤器（Bloom Filter）也是将长字符串计算出hash值保存，通过比较hash值
来过滤重复的元素，因为可能存在不同键出现相同hash值的情况，
所以构造布隆过滤器的时候，可以通过三种不同的hash函数计算hash值，
这样可以有效降低冲突。

常用hash函数：
    数字分析法
    平方取中法
    分段叠加法
    除留余数法
    
处理冲突的方法：
    开放定址法（再散列法）
        线性探测再散列
        二次探测再散列
        伪随机探测再散列
    再哈希法
    拉链法（HashMap）
    建立公共溢出区
    

'''