python中的字典

文章目录

    • 字典
    • 字典的创建
    • 设置默认值(fromkeys函数)
    • 字典的基本操作
    • 字典的内建函数
    • update方法(更新字典)
    • 删除字典
    • 字典的常用方法

字典

在Python中,字典是一种无序的、可变的数据结构,用于存储键值对。字典使用大括号 {} 来创建,每个键值对使用冒号 : 分隔,键值对之间使用逗号 , 分隔。

以下是一个示例字典:

person = {"name": "Alice","age": 28,"city": "New York"
}

在上述示例中,我们创建了一个字典 person,包含了名为 “name”、“age” 和 “city” 的键值对。可以通过键来访问对应的值,例如 person["name"] 将返回 “Alice”。

字典是可变的,可以通过给定键赋予新值来修改字典中的值,例如 person["age"] = 29 将年龄从 28 修改为 29。

字典也提供了一些常用的方法,例如 keys() 方法可用于获取所有的键,values() 方法可用于获取所有的值,items() 方法可用于获取所有的键值对。

要注意的是,字典中的键必须是唯一的,如果使用相同的键进行赋值,后面的值将覆盖前面的值。

字典的创建

字典可以通过两种方式来创建。

  1. 使用大括号 {} 和冒号 : 创建字典,每个键值对之间用逗号 , 分隔。键和值可以是任意类型的对象,但键必须是不可变类型,例如字符串、整数或元组。

    person = {"name": "Alice", "age": 28, "city": "New York"}
    
  2. 使用 dict() 函数创建字典,可以在函数中传递键值对作为参数,或者传递一个包含键值对的元组列表。

    person = dict(name="Alice", age=28, city="New York")
    

    或者

    person = dict([("name", "Alice"), ("age", 28), ("city", "New York")])
    

这两种方式都可以创建一个类似的字典对象。需要注意的是,第二种方式中的键值对列表可以是任意可迭代对象,每个元素都必须是包含两个元素的元组。

可以使用 len() 函数获取字典中键值对的数量,例如 len(person) 返回字典 person 中的键值对数量。

还可以使用 innot in 运算符来检查一个键是否存在于字典中。例如 if "name" in person: 将检查字典 person 是否包含键 “name”。

设置默认值(fromkeys函数)

fromkeys() 是字典对象的一个方法,用于创建一个新字典,其中包含指定的键和每个键对应的初始值。

fromkeys() 方法的语法如下:

new_dict = dict.fromkeys(iterable, value)

其中:

  • iterable 是一个可迭代对象,用于指定新字典中的键。
  • value 是可选的参数,用于指定新字典中每个键对应的初始值。如果不提供该参数,则默认值为 None

示例1:使用列表作为可迭代对象并指定初始值

keys = ["name", "age", "city"]
person = dict.fromkeys(keys, "unknown")
print(person)

输出:

{'name': 'unknown', 'age': 'unknown', 'city': 'unknown'}

示例2:使用字符串作为可迭代对象但不指定初始值

keys = "abc"
my_dict = dict.fromkeys(keys)
print(my_dict)

输出:

{'a': None, 'b': None, 'c': None}

该方法提供了一种方便地初始化字典的方式,特别是在需要为新字典中的所有键设置相同的初始值时非常有用。

字典的基本操作

字典是Python中的一种数据结构,用于存储键-值对。以下是一些基本操作:

  1. 创建字典:
my_dict = {}  # 创建空字典
my_dict = {'apple': 1, 'banana': 2, 'orange': 3}  # 创建带有初始值的字典
  1. 添加或更新键-值对:
my_dict['apple'] = 5  # 添加或更新键'apple'的值为5
my_dict.update({'banana': 10, 'grape': 7})  # 批量添加或更新键-值对
  1. 访问字典的值:
print(my_dict['apple'])  # 输出:5
print(my_dict.get('banana'))  # 输出:10
  1. 删除键-值对:
del my_dict['apple']  # 删除键'apple'的键-值对
my_dict.pop('banana')  # 删除键'banana'的键-值对
  1. 遍历字典:
for key in my_dict:print(key, my_dict[key])  # 输出所有键和对应的值for key, value in my_dict.items():print(key, value)  # 输出所有键和对应的值
  1. 检查键是否存在:
if 'apple' in my_dict:print("键'apple'存在")
  1. 获取字典的长度:
length = len(my_dict)
print(length)  # 输出:2

这些是字典的一些基本操作,通过它们可以对字典进行创建、访问、修改、删除和遍历等操作。

字典的内建函数

字典作为Python中的一种内建数据类型,有一些内建函数可以用来操作和处理字典。以下是一些常用的字典内建函数:

  1. len():用于返回字典中键-值对的数量。
my_dict = {'apple': 1, 'banana': 2, 'orange': 3}
length = len(my_dict)
print(length)  # 输出:3
  1. keys():用于返回一个包含字典所有键的列表。
my_dict = {'apple': 1, 'banana': 2, 'orange': 3}
keys = my_dict.keys()
print(keys)  # 输出:dict_keys(['apple', 'banana', 'orange'])
  1. values():用于返回一个包含字典所有值的列表。
my_dict = {'apple': 1, 'banana': 2, 'orange': 3}
values = my_dict.values()
print(values)  # 输出:dict_values([1, 2, 3])
  1. items():用于返回一个包含字典所有键-值对的列表,每个键-值对以元组的形式表示。
my_dict = {'apple': 1, 'banana': 2, 'orange': 3}
items = my_dict.items()
print(items)  # 输出:dict_items([('apple', 1), ('banana', 2), ('orange', 3)])
  1. get(key, default):用于返回指定键的值,如果键不存在,则返回默认值。默认值参数是可选的。
my_dict = {'apple': 1, 'banana': 2, 'orange': 3}
value = my_dict.get('apple', 0)
print(value)  # 输出:1
value = my_dict.get('grape', 0)
print(value)  # 输出:0
  1. dict():创建一个空的字典或将其他类型的对象转换为字典。
my_dict = dict()  # 创建一个空字典
my_dict = dict([(1, 'one'), (2, 'two')])  # 将列表转换为字典

7.hash():hash()是Python的一个内建函数,用于计算给定对象的哈希值。哈希值是对象的唯一的整数标识符。

hash()函数可以应用于大多数内建数据类型(例如整数、浮点数、字符串、元组等)。它还可以应用于一些不可变对象,但不能应用于可变对象(如列表、字典和集合)。

下面是几个示例:

  1. 对整数进行哈希计算:
num = 42
print(hash(num))

输出:

42
  1. 对字符串进行哈希计算:
word = "hello"
print(hash(word))

输出:

530933906909695264
  1. 对元组进行哈希计算:
my_tuple = (1, 2, 3)
print(hash(my_tuple))

输出:

2528502973977326415

需要注意的是,hash()函数的返回值类型是整数,并且对于相同的对象,始终会返回相同的哈希值。但是对于不同的对象,有时可能会返回相同的哈希值,这种情况称为哈希碰撞。因此,在设计使用哈希值的数据结构时,需要考虑如何避免或处理哈希碰撞。

这些是一些常用的字典内建函数,使用它们可以对字典进行各种操作,如获取键或值的列表、获取键-值对的列表、返回字典的长度等。

update方法(更新字典)

字典的update()方法用于将一个字典的键值对更新到另一个字典中。它接受一个字典作为参数,然后将该字典中的键值对更新到调用update()方法的字典中。

以下是使用update()方法的示例:

dict1 = {'name': 'John', 'age': 25}
dict2 = {'city': 'New York', 'age': 26}dict1.update(dict2)print(dict1)  # 输出: {'name': 'John', 'age': 26, 'city': 'New York'}

在上面的示例中,dict1是要更新的字典,dict2是提供要更新的键值对的字典。使用update()方法将dict2中的键值对更新到dict1中。注意,如果两个字典中存在相同的键,那么使用update()方法后,被更新字典中的对应键的值会被替换为来自提供字典的值。

除了接受字典作为参数外,update()方法还可以接受其他数据结构,如元组或具有items()方法返回键值对的对象。以下是使用元组和items()方法的示例:

dict1 = {'name': 'John', 'age': 25}
tuple1 = ('city', 'New York')
dict2 = {'age': 26}dict1.update(tuple1)
print(dict1)  # 输出: {'name': 'John', 'age': 25, 'city': 'New York'}dict1.update(dict2.items())#元组
print(dict1)  # 输出: {'name': 'John', 'age': 26, 'city': 'New York'}

在上述示例中,元组tuple1包含了要更新到dict1中的键值对。通过调用update()方法,将元组中的键值对更新到dict1中。同样地,使用dict2.items()返回的键值对列表进行更新也是可以的。

需要注意的是,update()方法会在原地修改字典,而不是返回一个新的字典。

删除字典

字典的clear()方法用于清空字典中的所有键值对,即将字典重置为空字典。

以下是使用clear()方法的示例:

dict1 = {'name': 'John', 'age': 25}dict1.clear()print(dict1)  # 输出: {}

在上面的示例中,dict1是要清空的字典。通过调用clear()方法,将字典中的键值对全部删除,使其变为空字典。

需要注意的是,调用clear()方法后,字典对象本身仍然存在,只是字典中的键值对被删除了。因此,使用clear()方法后,字典对象仍然可以被赋值新的键值对,或者使用其他字典方法进行操作。

dict1.clear()dict1['name'] = 'Lisa'print(dict1)  # 输出: {'name': 'Lisa'}

在上面的示例中,调用clear()方法后,dict1变为空字典。之后,我们可以通过重新赋值的方式,向字典中添加新的键值对。最后,打印字典内容时输出{'name': 'Lisa'}

字典的常用方法

字典通过建确定对象
在这里插入图片描述
字典是Python中常用的数据类型之一,它提供了一系列方法来操作和管理字典对象。下面是几个常用的字典方法:

  1. len():返回字典中键值对的数量。
dict1 = {'name': 'John', 'age': 25}
print(len(dict1))  # 输出: 2
  1. keys():返回一个包含字典所有键的列表。
dict1 = {'name': 'John', 'age': 25}
print(dict1.keys())  # 输出: dict_keys(['name', 'age'])
  1. values():返回一个包含字典所有值的列表。
dict1 = {'name': 'John', 'age': 25}
print(dict1.values())  # 输出: dict_values(['John', 25])
  1. items():返回一个包含字典所有键值对的元组列表。
dict1 = {'name': 'John', 'age': 25}
print(dict1.items())  # 输出: dict_items([('name', 'John'), ('age', 25)])
  1. get(key, default):返回指定键的值,如果键不存在,则返回指定的默认值(默认为None)。
dict1 = {'name': 'John', 'age': 25}
print(dict1.get('name'))  # 输出: John
print(dict1.get('gender', 'Unknown'))  # 输出: Unknown
  1. update(other_dict):将另一个字典的键值对更新到当前字典中,如果键已存在,则会更新其对应的值。
dict1 = {'name': 'John'}
dict2 = {'age': 25, 'gender': 'Male'}
dict1.update(dict2)
print(dict1)  # 输出: {'name': 'John', 'age': 25, 'gender': 'Male'}
  1. pop(key, default):删除指定键的键值对,并返回对应的值。如果键不存在,则返回指定的默认值(默认会抛出KeyError异常)。
dict1 = {'name': 'John', 'age': 25}
print(dict1.pop('name'))  # 输出: John
print(dict1)  # 输出: {'age': 25}

这些是字典中常用的一些方法,可以帮助我们实现字典的增删改查操作和其他常见操作。需要根据实际需要选择适合的方法来操作和管理字典对象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/209737.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot+vue美食外卖点餐系统的研究与设计

目录 前言😃:一、项目简介二、技术选型三、系统功能架构四、功能实现商家端功能实现(1)商家端登录界面(2)工作台界面(3)数据统计界面(4)订单界面(…

Python中使用HTTP代码示例

在Python中,有多种方式可以通过HTTP协议与服务器进行通信。以下是使用requests库和http.client库的示例。 一、使用requests库 requests库是Python中用于发送HTTP请求的流行库。它可以轻松地发送GET、POST、PUT、DELETE等HTTP请求。以下是一个简单的示例&#xff…

实战分析和精华总结:服务器端请求伪造SSRF漏洞数据劫持、复现、分析、利用及修复过程

实战分析和精华总结:服务器端请求伪造SSRF漏洞数据劫持、复现、分析、利用及修复过程。 SSRF漏洞(服务器端请求伪造):是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以…

AI医疗交流平台【Docola】申请823万美元纳斯达克IPO上市

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,总部位于美国的AI医疗交流平台Docola近期已向美国证券交易委员会(SEC)提交招股书,申请在纳斯达克IPO上市,股票代码为 (DOCO) ,Docola计划…

面试必会-JAVA基础篇-02

文章目录 11. ArrayList 和 LinkedList 的区别是什么?12. 说一下HashMap的实现原理?13. HashMap的put方法的具体流程?14. 讲一讲HashMap的扩容机制15. ConcurrentHashMap 底层具体实现知道吗?16. 创建线程的四种方式17. runnable …

Python 接口自动化 —— requests框架

1.前言 Python内置的urllib模块,也可以用于访问网络资源。但是,它用起来比较麻烦,而且,缺少很多实用的高级功能。因此我们使用 requests 模块进行进行接口测试。 requests官方文档资料地址:http://cn.python-request…

21.Oracle的程序包(Package)

Oracle的程序包Package 一、Package的概述1、什么是Oracle11g的Package2、Package的作用是什么3、常见的系统内置Package 二、创建Package的相关语法1、Package的创建语法2、Package的删除3、具体案例4、Package的使用5、与Package相关的其他语法 三、常见内置程序包的使用1、…

【开源】基于Vue+SpringBoot的民宿预定管理系统

项目编号: S 058 ,文末获取源码。 \color{red}{项目编号:S058,文末获取源码。} 项目编号:S058,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用例设计2.2 功能设计2.2.1 租客角色…

【数据分享】2015-2023年我国区县逐月二手房房价数据(Excel/Shp格式)

房价是一个城市发展程度的重要体现,一个城市的房价越高通常代表这个城市越发达,对于人口的吸引力越大!因此,房价数据是我们在各项城市研究中都非常常用的数据!之前我们分享过2015-2023年我国地级市逐月房价数据&#x…

FTP服务文件上传失败,错误码553的排故过程

本文主要记录文件上传失败,错误码553的排故过程。 1 背景 树莓派通过FTP给嵌入式板卡传输文件,好几套设备,发现有的能传输成功,有的传输不成功。树莓派和嵌入式板卡都一样的,出现问题时感觉很懵。 2 逐项对比 2.1 自…

吉利展厅 | 透明OLED拼接2x2:科技与艺术的完美融合

产品:4块55寸OLED透明拼接屏 项目地点:南宁 项目时间:2023年11月 应用场景:吉利展厅 在2023年11月的南宁,吉利展厅以其独特的展示设计吸引了众多参观者的目光。其中最引人注目的亮点是展厅中央一个由四块55寸OLED透…

线程变量引发的session混乱问题

最近不是在救火,就是在救火的路上。 也没什么特别可写的,今天记录下最近遇到的一个问题,个人觉得挺有意思, 待有缘人阅读 言归正传,售后反馈: 营业查询中付款方式为第三方支付的几条银行缴费,创…

ENVI植被指数阈值法

植被指数阈值法提取纯净像元 首先用ENVI打开无人机遥感影像 1. 假彩色显示 打开数据管理工具,无人机的4波段为红边波段 2. 波段计算 打开band math,输入 float(b1-b2)/(b1b2) 选择对应波段 3. 阈值筛选 阈值按经验值选的0.7,ndvi…

爬虫概念、基本使用及一个类型和六个方法(一)

目录 一、爬虫简介 1.什么是爬虫 2.爬虫的核心 3.爬虫的用途 4.爬虫的分类 5.反爬手段 二、Urllib基本使用 1.导入我们需要的包 2.定义一个url 3.模拟浏览器向服务器发送请求 4.获取响应中的页面的源码 5.打印数据 三、一个类型和六个方法 1.定义url,并…

Docker 容器日志查看和清理

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

java springboot通过application配置文件生成随机值并控制范围

我们找到 项目的 application 配置文件 这里我们还是习惯用 yml格式的 我们在配置文件中 写出 ${random.} 的时候 他就会将所有可配置的随机类型都提示出来了 有 整数 长整星 字符串 uuid 这里 我们来个模板 testcase:book:id: ${random.int}name: ${random.value}date: ${r…

Ubuntu18.04安装Ipopt-3.12.8流程

本文主要介绍在Ubuntu18.04中安装Ipopt库的流程,及过程报错的解决方法,已经有很多关于Ipopt安装的博客,但经过我的测试,很多都失效了,经过探索,找到可流畅的安装Ipopt的方法,总结成本篇博客。 …

提升Zoom视频会议流畅度,试试一站式SaaS应用加速方案

对于一些跨国企业,Zoom是比较常用的视频会议软件。首先明确的是Zoom官方版也就是国际版,国内企业访问Zoom国际版会觉得慢一点,尤其在进行跨国、跨区域大型实时会议时卡顿、花屏就会更为明显。 为什么会卡顿呢? 主要问题之一还是受…

zabbix配置snmp trap--使用snmptrapd和Bash接收器(缺zabbix_trap_handler.sh文中自取)--图文教程

1.前言 我的zabbix的版本是5.0版本,5.0的官方文档没有使用bash接收器的示例,6.0的官方文档有使用bash接收器的示例,但是,下载文件的链接失效?! 这里讲解zabbix-server端配置和zabbix web端配置 2.zabbix-…

UI咨询公司-蓝蓝设计:顶级秘籍:提升UI设计吸引力的3大绝招

想要让你的UI设计在海量应用中脱颖而出,吸引用户眼球吗?如果你正在寻找提升UI设计吸引力的绝妙方法,那么你绝对不能错过本文!我们将为你揭示顶级UI设计师都不会告诉你的3大绝招,让你轻松掌握提升UI设计吸引力的关键技巧…