Python字典查找数据的5个基础操作方法

目录
  • 前言
  • 一、key值查找
  • 二、函数查找
    • 2.1 get()
    • 2.2 keys()
    • 2.3 values()
    • 2.4 items()
  • 附:字典的常用方法
  • 总结

前言

上一篇文章写了关于字典操作方法的增删改,这篇主要讲解如何查找字典数据。查找数据写法一共有两种,一种能够是key值查找,另外一种是按照函数的写法进行数据查找。

一、key值查找

如果当前查找的key存在,则返回对应的值,否则则报错。

代码示例:

dict1 = {'name': 'Rose', 'age': 30, 'sex': '女'}
# key存在则返回对应值
print(dict1['name'])  # Rose

# key不存在则报错
print(dict1['id'])  # 报错

二、函数查找

2.1 get()

语法:

字典序列.get(key, 默认值)

注意:

如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None。

快速体验:

dict1 = {'name': 'Rose', 'age': 30, 'sex': '女'}
# key存在
print(dict1.get('name'))  # Rose
print(dict1.get('name', 'python'))  # Rose

# key不存在,第二个参数存在,返回第二个参数
print(dict1.get('id', 1010))  # 1010

# key不存在,第二个参数不存在,返回None
print(dict1.get('id'))  # None

2.2 keys()

语法:

字典序列.keys()

作用:

查找字典中所有的key,返回可迭代对象(可跌迭代对象就是可以用for遍历的对象)

快速体验:

dict1 = {'name': 'Rose', 'age': 30, 'sex': '女'}
print(dict1.keys())
# 结果 dict_keys(['name', 'age', 'sex'])
# 结果是可迭代对象,用for遍历的对象

2.3 values()

语法:

字典序列.values()

作用:

查找字典中所有的value,返回可迭代对象(可跌迭代对象就是可以用for遍历的对象)

快速体验:

dict1 = {'name': 'Rose', 'age': 30, 'sex': '女'}
print(dict1.values())
# 结果 dict_values(['Rose', 30, '女'])
# 结果是可迭代对象,用for遍历的对象

2.4 items()

语法:

字典序列.get(key, 默认值)

作用:

查找字典中所有的键值对,返回可迭代对象,里面的数据是元组,元组数据1是字典的key,元组数据2是字典key对应的值。

快速体验:

dict1 = {'name': 'Rose', 'age': 30, 'sex': '女'}
print(dict1.items())
# 结果 dict_items([('name', 'Rose'), ('age', 30), ('sex', '女')])

dict1 = {'name': 'Rose', 'age': 30, 'sex': '女'}
print(dict1.items())
# 结果 dict_items([('name', 'Rose'), ('age', 30), ('sex', '女')])

# 结果是可迭代对象

附:字典的常用方法

"""
字典的定义、添加和修改
"""
dictA = {}  # 空字典,没有任何的数据
dictA['name'] = 'lihua'  # 将一个键值对添加到字典中,name是key,lihua是value
print(dictA)  # 输出完整的字典
dictB = {'name': 'xiaogang', 'age': 18, 'job': [student, cook]}  # 在创建字典时就添加键值对
print(len(dictB))  # 字典同样可以通过len函数来获取键值对的长度
print(dictB['name'])  # 因为字典中key具有唯一性,所以可以通过查找key的方式来获取对应的value
dictB['name'] = 'xiaowang'  # 修改key所对应的value
"""
字典中键、值、键值对的获取
"""
dictB = {'name': 'lh', 'age': '18', 'job': 'student'}
print(dictB.keys())  # 获取字典中全部的键
print(type(dictB.keys))  # 数据类型为dict_keys
print(dictB.values())  # 获取字典中全部的值
print(type(dictB.values()))  # 数据类型为dict_values
print(dictB.items())  # 获取字典中全部的键值对
print(type(dictB.items()))  # 数据类型为dict_values
"""
字典的遍历操作
"""
dictB = {'name': 'lh', 'age': '18', 'job': 'student'}
for item in dictB.items():
    print(item)  # 字典是可以遍历的
    pass
for key, value in dictB.items():
    print(key + '==' + value)  # 可以用两个临时变量分别接收键值对的key和value
"""
字典的更新、修改
"""
dictB = {'name': 'lh', 'age': '18', 'job': 'student'}
dictB.update({'name': 'lki'})  # 利用update函数可以进行对键值对的修改
dictB.update({'height': '159'})  # update函数还可以增加键值对,有更新字典的特征
"""
键值对的删除
"""
dictB = {'name': 'lh', 'age': '18', 'job': 'student'}
del dictB['name']  # 通过指定key可以删除键值对
dictB.pop('age')  # 通过指定key进行删除
dictB.clear()  # 清空字典
del dictB  # 删除字典

总结

到此这篇关于Python字典查找数据的5个基础操作方法的文章就介绍到这了,更多相关Python字典查找数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2022-06-22

Python根据字典的值查询出对应的键的方法

本文主要介绍了Python 字典值查询出对应的键,分享给大家,也给自己留个笔记,具体如下: # -*- coding: utf-8 -*- # Author Zhang Chen # Email ZhangChen.Shaanxi@gmail.com # Data 2018/11/1 persons={'ZhangSan':'male', 'LiSi':'male', 'WangHong':'female'} #找出所有男性 males = filter(lambda x:'male'== x[

Python中让MySQL查询结果返回字典类型的方法

Python的MySQLdb模块是Python连接MySQL的一个模块,默认查询结果返回是tuple类型,只能通过0,1..等索引下标访问数据 默认连接数据库: 复制代码 代码如下: MySQLdb.connect(     host=host,         user=user,         passwd=passwd,         db=db,         port=port,         charset='utf8' ) 查询数据: 复制代码 代码如下: cur = co

Python Sqlite3以字典形式返回查询结果的实现方法

sqlite3本身并没有像pymysql一样原生提供字典形式的游标. cursor = conn.cursor(pymysql.cursors.DictCursor) 但官方文档里已经有预留了相应的实现方案. def dict_factory(cursor, row): d = {} for idx, col in enumerate(cursor.description): d[col[0]] = row[idx] return d 使用这个函数代替conn.raw_factory属性即可.

Python查询Mysql时返回字典结构的代码

MySQLdb默认查询结果都是返回tuple,输出时候不是很方便,必须按照0,1这样读取,无意中在网上找到简单的修改方法,就是传递一个cursors.DictCursor就行. 默认程序: MySQLdb默认查询结果都是返回tuple,输出时候不是很方便,必须按照0,1这样读取,无意中在网上找到简单的修改方法,就是传递一个cursors.DictCursor就行.默认程序: 复制代码 代码如下: import MySQLdb db = MySQLdb.connect(host = ´localh

python查询mysql,返回json的实例

如下所示: import MySQLdb import json def getSql(): try: con = MySQLdb.connect(host='localhost', user='', passwd='', db='test', charset='utf8') cursor = con.cursor() sql = "select * from user" cursor.execute(sql) results = cursor.fetchmany(5) users =

解决python2.7 查询mysql时出现中文乱码

问题: python2.7 查询或者插入中文数据在mysql中的时候出现中文乱码 --- 可能情况: 1.mysql数据库各项没有设置编码,默认为'latin' 2.使用MySQL.connect的时候没有设置默认编码 3.没有设置python的编码,python2.7默认为'ascii' 4.没有解码 --- 解决方法: 1.设置mysql的编码 ubuntu执行下列语句: ** sudo vim /etc/mysql/my.cnf ** 然后在里面插入语句: [client] default

python查询mysql中文乱码问题

问题: python2.7 查询或者插入中文数据在mysql中的时候出现中文乱码 --- 可能情况: 1.mysql数据库各项没有设置编码,默认为'latin' 2.使用MySQL.connect的时候没有设置默认编码 3.没有设置python的编码,python2.7默认为'ascii' 4.没有解码 --- 解决方法: 1.设置mysql的编码 ubuntu执行下列语句: ** sudo vim /etc/mysql/my.cnf ** 然后在里面插入语句: [client] default

在Python中用keys()方法返回字典键的教程

keys()方法返回在字典中的所有可用的键的列表. 语法 以下是keys()方法的语法: dict.keys() 参数 NA 返回值 此方法返回在字典中的所有可用的键的列表. 例子 下面的例子显示keys()方法的用法. #!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7} print "Value : %s" % dict.keys() 当我们运行上面的程序,它会产生以下结果: Value : ['Age', 'Name']

解决Java程序使用MySQL时返回参数为乱码的示例教程

先说MySQL的字符集问题.Windows下可通过修改my.ini内的 default-character-set=utf8 //客户端的默认字符集 在MySQL客户端工具中输入 SHOW VARIABLES LIKE 'character%'; 显示如下 这样执行读取信息返回中文为乱码,解决办法是,在连接数据库之后,读取数据之前,先执行一项查询 SET NAMES 'utf8'; 即可显示正常. 最简单的完美修改方法,修改mysql的my.cnf文件中的字符集键值(注意配置的字段细节): 1.

Python构造自定义方法来美化字典结构输出的示例

示例: 复制代码 代码如下: d = { "root": { "folder2": { "item2": None, "item1": None }, "folder1": { "subfolder1": { "item2": None, "item1": None }, "subfolder2": { "item3&

django执行原始查询sql,并返回Dict字典例子

很多时候执行sql语句,数据比django的model来的快,但并不想关心返回的字段,例如你可以执行:select * from product这种sql,这里个方法将会返回与数据库列名相同的键值对 ,格式是这样子的: result = [{"id":1,"name":"product1"},{"id":2,"name":"product2"}] 当然你还可以 import json j

Python实现的查询mysql数据库并通过邮件发送信息功能

本文实例讲述了Python实现的查询mysql数据库并通过邮件发送信息功能.分享给大家供大家参考,具体如下: 这里使用Python查询mysql数据库,并通过邮件发送宕机信息. Python代码如下: #-*- coding: UTF-8 -*- #!/usr/bin/env python ''''' author:qlzhong Created on 2015-6-29 征途宕机日志统计汇总 ''' import MySQLdb import time import datetime impo

Python实现mysql数据库更新表数据接口的功能

前言 昨天,因为项目需求要添加表的更新接口,来存储预测模型训练的数据,所以自己写了一段代码实现了该功能,在开始之前,给大家分享python 操作mysql数据库基础: #coding=utf-8 import MySQLdb conn= MySQLdb.connect( host='localhost', port = 3306, user='root', passwd='123456', db ='test', ) cur = conn.cursor() #创建数据表 #cur.execute