010-Python语言开发PythonComputation(四)

 

 

 

哈希算法hash

哈希算法是将一个可变长度的数据映射到一个固定长度数据的算法

什么意思呢

就是无论什么一个什么样的多长多短的数据

经过哈希算法计算之后,会变成一个固定长度的数据

 

我们来举个例子

我们来看看python里面的hash()方法

print(hash('a'))
print(hash('aa'))
print(hash('aaa'))
print(hash('abc'))
print(hash('abcabc'))
print(hash(1))
print(hash(2))
print(hash(3))
print(hash(123))
print(hash('1'))
print(hash('2'))
print(hash('3'))

结果是

010-Python语言开发PythonComputation(四)_第1张图片

 

我们看到计算出来得到一个整数,长短都是一样的

但是整数,1,2,3,123,计算出来还是原来的整数

 

 

 

 

所有的python中的不可变对象是hashable的

比如number, boolean, string, tuple等等

但是

list和dictionary是不可哈希的,不能进行hash计算

 

 

 

 

 

dictionary和mapping

Mapping类型是可变的
有len(),,min(),,max()等方法

Dictionary是Mapping的一种

 

 

 

 

 

Unordered Collection无序集合

无序集合是按照hash来排列的

也就是说key全都是按照hash来排列

 

来看看dictionary怎么用

d = {1: 'a', 2: "b"}
print(d)
print(d[1])
print(d[2])

d = {'name': 'Eddie', 'age': 20}
print(d)
print(d['name'])
print(d['age'])

if 'name' in d:
    print('yes')
else:
    print('no')

if 'Eddie' in d:
    print('yes')
else:
    print('no')

结果是

010-Python语言开发PythonComputation(四)_第2张图片

 

 

 

 

 

sequence和dictionary的转换与使用

dict()

items()

keys()

values()

写点代码看看

s = [['name', 'Eddie'], ['age', 20]]
d = dict(s)
print(d)

print(d.items())
print(d.keys())
print(d.values())

print(list(d.items()))
print(list(d.keys()))
print(list(d.values()))

for item in d.items():
    print(item)
    print(item[0],item[1])

for key in d.keys():
    print(key)

d.clear()
print(d)

结果是

010-Python语言开发PythonComputation(四)_第3张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(PythonCom)