如何判断Python字典中是否存在某个key
时间:2022-07-24
本文章向大家介绍如何判断Python字典中是否存在某个key,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在Python中有各种数据结构,而字典是我们生产中经常会用到的数据结构,这里记录一下如果判断某个key是否存在于字典中的二种方法。
方法一:字典自带属性has_key
Python2下:
nock:work nock$ python2.7
Python 2.7.10 (default, Jul 14 2015, 19:46:27)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> user_info = {'name': 'nock', 'age': 18}
>>> user_info.has_key('job')
False
>>> user_info.has_key('age')
True
>>> user_info.has_key('name')
True
Python3下:
nock:work nock$ python3
Python 3.5.1 (default, Dec 26 2015, 18:08:53)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> user_info = {'name': 'nock', 'age': 18}
>>> user_info.has_key('job')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'dict' object has no attribute 'has_key'
>>> user_info.has_key('age')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'dict' object has no attribute 'has_key'
如上所示可知,字典的has_key
方法只能在Python2中使用,在Python3中已经移除。
方法二: in关键字
一般我们刚开始学习认识Python的时候我们都会先字典列表对象的形式把字典所有键返回,再判断该key是否存在于键列表中:
nock:work nock$ python3
Python 3.5.1 (default, Dec 26 2015, 18:08:53)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> dict_info = {'name': 'nock', 'age': 18}
>>> keys = dict_info.keys()
>>> print(type(keys), keys)
<class 'dict_keys'> dict_keys(['name', 'age'])
>>> for k in keys:
... if 'name' == k:
... print("key in ok")
... break
...
key in ok
其实这不是最好的方法,那还有更好的方法? Python2下:
nock:work nock$ python2.7
Python 2.7.10 (default, Jul 14 2015, 19:46:27)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> user_info = {'name': 'nock', 'age': 18}
>>> if 'name' in user_info:
... print('in')
...
in
>>> if 'job' not in user_info:
... print('not in')
... else:
... print('in')
...
not in
Python3下:
nock:work nock$ python3
Python 3.5.1 (default, Dec 26 2015, 18:08:53)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> user_info = {'name': 'nock', 'age': 18}
>>> if 'job' not in user_info:
... print('in')
...
in
>>> if 'job' not in user_info:
... print('not in')
... else:
... print('in')
...
not in
如上可知in关键字在Python2和Python3下都适用。
总结
如上实例可知用in
关键字是最nice的方法,同时在字典数据量较大的情况下in
也是最快的方法,我这里就不实验了,有兴趣的同学可以实践一下。
- 怎么实现关闭窗口
- java.io.StreamCorruptedException: invalid type code: AC错误的解决方法
- 不可不知的一点Python陷阱
- 10个应该早点知道的Python技巧
- 一文读懂如何用 Python 实现6种排序算法
- 5 个很好的 Python 面试题
- Python部署手记:django, gunicorn, virtualenv, circus, nginx
- Python图像处理库:Pillow 初级教程
- 陷阱!python参数默认值
- 怎么样才算是精通 Python?
- 教你一招 | Python实现无向图最短路径
- 教你一招 | Python装饰器的另类用法
- 如何拿到半数面试公司Offer——我的Python求职之路
- Python编程语言发展简史
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法