字典的key都可以是什么

一个对象能不能作为字典的key,就取决于其有没有__hash__方法。所以所有python自带类型中,除了list、dict、set和内部至少带有上述三种类型之一的tuple之外,其余的对象都能当key。

比如数值/字符串/完全不可变的元祖/函数(内建或自定义)/类(内建或自定义)/方法/包等等你能拿出手的,不过有的实际意义不高。还有数值型要注意,因为两个不同的相等数字可以有相同的哈希值,比如1和1.0。

原文地址:https://www.cnblogs.com/zknublx/p/12054379.html

时间: 2024-11-06 22:39:57

字典的key都可以是什么的相关文章

Python中字典的key都可以是什么

作者:Inotime 来源:CSDN 原文:https://blog.csdn.net/lnotime/article/details/81192207 答:一个对象能不能作为字典的key,就取决于其有没有__hash__方法.所以所有python自带类型中,除了list.dict.set和内部至少带有上述三种类型之一的tuple之外,其余的对象都能当key. 比如数值/字符串/完全不可变的元祖/函数(内建或自定义)/类(内建或自定义)/方法/包等等你能拿出手的,不过有的实际意义不高.还有数值型

Python实现字典的key和values的交换

1 #encoding=utf-8 2 3 4 5 #反转字典 即key和val互换 6 dict1={1:2,3:4,6:7,9:10} 7 8 9 print '---生成器表达式' 10 def invert_dict(d): 11 return dict((v,k) for k,v in d.iteritems()) 12 13 print invert_dict(dict1) 14 15 16 print '---列表推导' 17 def invert_dict2(d): 18 ret

关于字典的key冒泡排序,将对应的value按字符串输出

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //将字典的key从Z->A排序,按排序后的key的顺序,输出value,将value按字符串输出 NSDictionary *[email protected]{@"R":@"e", @"T":@"e", @"

python中使用自定义类实例作为字典的key

python中dict类型的key值要求是不可变类型,通常来说,我们一般采用int或者str类型来作为字典的key,但是在某些场景中,会造成一定的麻烦. 如我们有一个处理http Request的规则类名为Rule,其定义如下,它由一个Request path和其支持的Request methods数组组成: class Rule(object): def __init__(self, path, methods): assert(isinstance(path, str)) assert(is

python中字典以key排序,以value排序。以及通过value找key的方式

1.sorted函数首先介绍sorted函数,sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参数. 其中iterable表示可以迭代的对象,例如可以是dict.items().dict.keys()等,key是一个函数,用来选取参与比较的元素,reverse则是用来指定排序是倒序还是顺序,reverse=true则是倒序(从大到小),reverse=false则是顺序(从小到大),默认是reverse=false. 2.

Python遍历字典去key和value需要注意的点→enumerate和items()

嗯,首先在提到enumerate()这个枚举方法之前,我想到的就是这个可以遍历任何一个元素,可以打印出来key和value,但是我没有想到的是,这个遍历的,仅仅限于遍历打印出索引和元素. 碰到这个问题是因为在做一个罗马数字运算引发的....来看一下详细的代码 ir = {'1000': 'M', '900': 'CM', '500': 'D', '400': 'CD', '100': 'C', '90': 'XC', '50': 'L'} for i,v in enumerate (ir): p

字典按key值排序

data_dic = {'20190105': [{'name':'bbb','value': '222'}, {'name':'aaa', 'value': '111'}], '20190101': [{'name':'bbb','value': '333'}, {'name':'aaa', 'value': '555'}]} # 列表按 name值字段排序 for key, value in data_dic.items(): value_temp = sorted(value, key=l

iOS开发小技巧--富文本字典集合中的Key都是OC中的常量字符串

【python-字典】判断python字典中key是否存在的

一般有两种通用做法: 第一种方法:使用自带函数实现: 在python的字典的属性方法里面有一个has_key()方法: [python] view plain copy #生成一个字典 d = {'name':Tom, 'age':10, 'Tel':110} #打印返回值 print d.has_key('name') #结果返回True 第二种方法:使用in方法: [python] view plain copy #生成一个字典 d = {'name':Tom, 'age':10, 'Tel