python字典的键
字典中的值没有任何限定, 可所以恣意Python对象,即从规范对象到用户自定义对象皆可,然则字典中的键是有范例限定的。
不允许一个键对应多个值
必需明白一条准绳:每一个键只能对应一个项。也就是说:一键对应多个值是不允许的(像列表、元组和其他字典如许的容器对象是能够的)。 当有键发作争执(即字典键反复赋值),取末了(近来)的赋值。Python并不会因字典中的键存在争执而发作一个毛病,它不会搜检键的争执是由于假如然如许做的话,在每一个键-值对赋值的时刻都会做搜检,这将会占用一定量的内存。
>>> dict1 = {'foo':789, 'foo': 'xyz'} >>> dict1 {'foo': 'xyz'} >>> dict1['foo'] = 123 >>> dict1 {'foo': 123}
键必需是可哈希的
大多数Python对象能够作为键,但它们必需是可哈希的对象。像列表和字典如许的可变范例,由于它们不是可哈希的,所以不能作为键。 一切不可变的范例都是可哈希的,因而它们都能够做为字典的键。要申明的是:值相称的数字示意雷同的键,即整型数字1和浮点数1.0的哈希值是雷同的,它们是雷同的键。
同时,也有一些可变对象(很少)是可哈希的,它们能够做字典的键,但很少见。举一个例子,一个完成了__hash__() 特别要领的类。由于__hash__()要领返回一个整数,所以仍然是用不可变的值(做字典的键)。 为何键必需是可哈希的?诠释器挪用哈希函数,依据字典中键的值来盘算存储你的数据的位置。假如键是可变对象,它的值可转变。假如键发作变化,哈希函数会映射到差别的地点来存储数据。假如如许的状况发作,哈希函数就不能够可靠地存储或猎取相干的数据。挑选可哈希的键的缘由就是由于它们的值不能转变。
数字和字符串能够被用做字典的键,元组是不可变的但也能够不是原封不动的,因而用元组做有用的键必需要加限定:若元组中只包含像数字和字符串如许的不可变参数,才能够作为字典中有用的键。
以上就是python字典的键可所以列表吗的细致内容,更多请关注ki4网别的相干文章!