Python3-字典

news2024/9/22 13:42:39

Python3 字典

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2, key3 : value3 }

注意:dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict。
在这里插入图片描述
键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

一个简单的字典实例:

tinydict = {'name': 'runoob', 'likes': 123, 'url': 'www.runoob.com'}

在这里插入图片描述
也可如此创建字典:

tinydict1 = { 'abc': 456 }
tinydict2 = { 'abc': 123, 98.6: 37 }

创建空字典

使用大括号 { } 创建空字典:

# 使用大括号 {} 来创建空字典
emptyDict = {}
 
# 打印字典
print(emptyDict)
 
# 查看字典的数量
print("Length:", len(emptyDict))
 
# 查看类型
print(type(emptyDict))

以上实例输出结果:

{}
Length: 0
<class 'dict'>

使用内建函数 dict() 创建字典:

emptyDict = dict()
 
# 打印字典
print(emptyDict)
 
# 查看字典的数量
print("Length:",len(emptyDict))
 
# 查看类型
print(type(emptyDict))

以上实例输出结果:

{}
Length: 0
<class 'dict'>

访问字典里的值

把相应的键放入到方括号中,如下实例:

#!/usr/bin/python3
 
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
print ("tinydict['Name']: ", tinydict['Name'])
print ("tinydict['Age']: ", tinydict['Age'])

以上实例输出结果:

tinydict['Name']:  Runoob
tinydict['Age']:  7

如果用字典里没有的键访问数据,会输出错误如下:

#!/usr/bin/python3
 
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
print ("tinydict['Alice']: ", tinydict['Alice'])

以上实例输出结果:

Traceback (most recent call last):
  File "test.py", line 5, in <module>
    print ("tinydict['Alice']: ", tinydict['Alice'])
KeyError: 'Alice'

修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:

#!/usr/bin/python3
 
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
tinydict['Age'] = 8               # 更新 Age
 
 
print ("tinydict['Age']: ", tinydict['Age'])

以上实例输出结果:

tinydict['Age']:  8

删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。

显式删除一个字典用del命令,如下实例:

#!/usr/bin/python3
 
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
del tinydict['Name'] # 删除键 'Name'
tinydict.clear()     # 清空字典
del tinydict         # 删除字典
 
print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School'])

但这会引发一个异常,因为用执行 del 操作后字典不再存在:

Traceback (most recent call last):
  File "/runoob-test/test.py", line 9, in <module>
    print ("tinydict['Age']: ", tinydict['Age'])
NameError: name 'tinydict' is not defined

字典键的特性

字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。

两个重要的点需要记住:

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

#!/usr/bin/python3
 
tinydict = {'Name': 'Runoob', 'Age': 7, 'Name': '小菜鸟'}
 
print ("tinydict['Name']: ", tinydict['Name'])

以上实例输出结果:

tinydict['Name']:  小菜鸟

2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:

#!/usr/bin/python3
 
tinydict = {['Name']: 'Runoob', 'Age': 7}
 
print ("tinydict['Name']: ", tinydict['Name'])

以上实例输出结果:

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    tinydict = {['Name']: 'Runoob', 'Age': 7}
TypeError: unhashable type: 'list'

字典内置函数&方法

Python字典包含了以下内置函数:
在这里插入图片描述
Python字典包含了以下内置方法:
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTTP头注入

HTTP头注入HTTP Header概述HTTP报文类型HTTP请求方法HTTP Header内容HTTP Header注入HTTP Header注入实例User-Agent注入XFF注入HTTP Header概述 HTTP报文类型 请求报文&#xff1a;由客户端发送给服务器的消息&#xff0c;其组成包括请求行&#xff0c;请求头和请求体。响应…

区块链安全正当时|《Hyperledger Fabric2.0架构安全报告》解读

2021年&#xff0c;《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》将区块链纳入数字产业&#xff0c;对其发展作出了重要部署。同年6月中央网信办和工信部联合印发了《关于加快推动区块链技术应用和产业发展的指导意见》&#xff0c;提出加快区块链…

Babel-好文

ES6的很多语法在浏览器甚至node环境中无法执行&#xff0c;babel就是一个广泛使用的转码器&#xff0c;可以将ES6代码转化成ES5代码定义一个文件夹&#xff0c;cmd进入到其中&#xff0c;运行npm install -g babel-cli安装&#xff0c;然后可以通过babel --version查看是否安装…

odoo15 登录界面的标题自定义

odoo15 登录界面的标题自定义 原代码中查询:<title>Odoo<title> <html> <head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>Odoo</title><link rel="shortcut icon…

Jvm调优实战笔记

一、基础命令jps 查看所有java进程jinfo 进程号 查看该线程相关信息3、jstat 统计信息&#xff08;数据跟踪信息&#xff09;jstat -gc 进程号 查看该线程在内存中每一块占用的大小jstat -gc 进程号 时间&#xff08;毫秒&#xff09; 更新频率4、jstack 跟踪线程jstack 进程号…

Ethercat系列(10)用QT实现SOEM主站

首先将SOEM编译成静态Lib库可以参考前面的博文(83条消息) VS2017下编译SOEM(Simle Open EtherCAT Master)_soem vs_CoderIsArt的博客-CSDN博客make_libsoem_lib.bat "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build" x86用QT创建…

【C++】多态虚表

多态——多种形态多态的分类&#xff1a;1.静态多态&#xff1a;函数重载和运算符重载&#xff08;复用函数名&#xff09;2.动态多态&#xff1a;派生类和虚函数实现运行时多态静态多态和动态多态的区别&#xff1a;静态多态的函数地址早绑定——编译阶段确定函数地址动态多态…

页面访问升级出错怎么解决

相信大家在访问网站的时候时常会遇到页面访问界面升级&#xff0c;暂时不可能进行访问操作&#xff0c;可能遇到这种情况很多小伙伴们都不知道怎么版&#xff0c;其实互联网网页在正常使用过程中是不会出现这种问题的。那么如果遇到页面访问界面升级怎么办?页面访问界面升级通…

TryHackMe-Binex

Binex 枚举计算机并获取交互式 shell。利用 SUID 位文件&#xff0c;使用 GNU 调试器利用缓冲区溢出并通过 PATH 操作获得根访问权限。 端口扫描 循例 nmap SMB枚举 题目给了提示&#xff1a;Hint 1: RID range 1000-1003 Hint 2: The longest username has the unsecure pa…

面试中问你查看日志的命令,可不能只说tail,cat,more

首选&#xff0c;如何查看日志&#xff1a; 很多初级测试人员&#xff0c;在进行执行测试用例这个步骤时&#xff0c;发现bug&#xff0c;不能更加的准确去定位bug&#xff0c;在这样的情况下就可以打开Linux服务器&#xff0c;敲命令查看操作进行中的实时日志&#xff0c;当系…

用arthas轻松排查线上问题

你是否在项目中会碰到以下一些问题&#xff1a; 在代码中打印各种日志来排查&#xff0c;比如方法的入参&#xff0c;出参&#xff0c;及在方法体中打印日志判断走哪行代码还有你觉得代码没问题&#xff0c;可是运行出现却是以前的bug&#xff0c;感觉代码没修改&#xff0c;或…

120.(leaflet篇)区域下钻,区域钻取

听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>

【RocksDB】Ubuntu20.04下编译rocksdb

前言&#xff1a; 我在刚学rocksdb的时候是在2022年&#xff0c;但是网上的资源很少&#xff0c;查了好久才把rocksdb安装成功&#xff0c;在这里向大家分享一下我的经历&#xff0c;安装过程中也报了很多错误&#xff0c;希望大家不要迷路 首先 在虚拟机里面安装依赖的包以…

python List和常用的方法

List&#xff1a;列表中包含多个数据&#xff0c;数据之间使用逗号分隔&#xff0c;索引从0开始。 空列表&#xff1a; dir&#xff1a;查看列表的所有方法 List常用方法&#xff1a;insert、append&#xff0c;extend、del、remove、pop、clear、count、index 增加insert(索引…

健身房戴耳机的人都喜欢戴哪款耳机健身、最好用健身耳机推荐

对于喜欢健身和运动人群来说&#xff0c;耳机可谓是重中之重了&#xff0c;带上耳机 听着喜欢的音乐&#xff0c;沉浸在自己的世界中&#xff0c;训练状态直接拉满…但是能适合运动佩戴的耳机真的不多&#xff0c;这类耳机要同时具备舒适度、防水性、稳固性、高续航等等性能&am…

coreldraw2023安装包下载及新功能介绍

对于广告标识业来说 coreldraw这个软件&#xff0c;对我们来说绝对不陌生&#xff0c;我从2008年开始接触到广告制作&#xff0c;到现在已经13多年了&#xff0c;从一开始的coreldraw 9红色的热气球开始。就被这个强大的软件所吸引&#xff0c;他有强大的排榜功能已经对位图的处…

zigbee 抓包软件Ubiqua使用详解

zigbee抓包软件使用&#xff08;Ubiqua Protocol Analyzer&#xff09; 添加Zigbee sniffer Dongle设备 add Device>vendor选择Texas Instruments>选择Texas Instruments CC2531>add Device 设置信道 右键设置需要抓包的信道 设置秘钥 单击主菜单Tools>Opt…

arm64虚拟化学习笔记

各种虚拟化对比 虚拟化种类优缺点实现硬件加速虚拟化性能最好&#xff0c;最贵1.vcpu 2.内存stage2 3.虚拟中断 4.arch time全虚拟化纯软件实现&#xff0c;性能差1.qemu串口 2.qemu磁盘半虚拟化软件实现复杂1.Virtio block 设备 2.Virtio net 设备io虚拟化加速移植性差1.PCI设…

java是编译型语言还是解释型语言?

基本概念 什么是编译型语言&#xff1f;编译型语言的首先将源代码编译生成机器语言&#xff0c;再由机器运行机器码&#xff08;二进制&#xff09;&#xff0c;比如C和C. 编译型语言&#xff1a;程序在执行之前需要一个专门的编译过程&#xff0c;把程序编译成 为机器语言的文…

mysql一explain结果分析

1. EXPLAIN简介 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句&#xff0c;从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。 ➤ 通过EXPLAIN&#xff0c;我们可以分析出以下结果&#xff1a; 表的读取顺序数据读取操作的操作类型哪些索引可…