Python学习笔记(十三):字典(附带《玩具谜题》题解)

【Python3.7学习笔记】五、字典 【Python3.7学习笔记】五、字典 学习笔记目录 【Python3.7学习笔记】一、环境搭建 【Python3.7学习笔记】二、第一个python程序 【Python3.7学习笔记】三、变量和简单数据类型 【Python3.7学习笔记】四、列表 目录 学习笔记目录 目录 一个简单的字典 使用字典 访问字典中得值 添加键值对 创建一个空字典 修改字典中得值 删除键值对 由类... 阅读详情

字典部分

 

字典创建与删除

在Python中,“字典”,顾名思义,有一个“字”(在Python中叫“键”),对应地,有一个“释义”(在Python中叫“值”)。

键和值之间用冒号连接;每两个元素之间用逗号分隔。

像这样:

>>> a={'name':'Commander_Wing','age':15}
>>> a
{'name': 'Commander_Wing', 'age': 15}

创建一个空字典:

>>> a={}
>>> a
{}

或者:

>>> a=dict()
>>> a
{}

删除一个字典:

>>> a={1:1,2:2,3:3}    #键和值不一定要是str型哦
>>> del a
>>> a
NameError: name 'a' is not defined

添加键值:

>>> a={}
>>> a['Language']='Python'
>>> a
{'Language': 'Python'}

但是需要注意:

1.这个语句同时适用于修改键值;像这样:

>>> a={'Language': 'C++'}
>>> a['Language']='Python'    #C++表示不高兴
>>> a
{'Language': 'Python'}

2.键值不可以重复!!!

 

字典元素调用

字典名[键]即可调用。像这样:

>>> a={'number':10}
>>> a['number']
10

 

字典常用方法

1.update()

用update将另一个字典中的元素添加(更新)到一个字典中。

>>> a={'a':1,'b':2}
>>> b={'c':3,'d':4}
>>> a.update(b)
>>> a
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

注意:

当update()括号中的字典中有键与原字典有重复时,以括号中的字典为准更新到原字典中。

 

2.get()

用get获取字典中的元素。与直接调取的区别是,直接调取不存在的键时,会跳出错误;而get()获取时,会返回一个预先设定好的值。

get(key,default=None)

key是键,而defaut是设定的值,默认为None(空)。

>>> a
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

>>> a['z']
KeyError: 'z'

>>> a.get('z','Error')
'Error'

 

3.items(),keys(),lavues()

用items()获取元素(包括键和值),用keys()获取键,用values()获取值。

>>> a
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

>>> a.items()
dict_items([('a', 1), ('b', 2), ('c', 3), ('d', 4)])

>>> a.keys()
dict_keys(['a', 'b', 'c', 'd'])

>>> a.values()
dict_values([1, 2, 3, 4])

 

4.setdefault()

用detdefault()返回指定的键所对应的值,若不存在,则添加预先设定好的新元素到字典中。

>>> a
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> a.setdefault('e',5)
5

>>> a.setdefault('a',6)
1                            #如果存在该键,则不进行修改,直接返回。

 

题解部分

前言

马上现学现用,做一下这道题吧!

原题目:洛谷 P1563

思路

1.用字典储人物以及方向:

2.对于每条线索,进行查找。需要注意的是,要防止指向在字典范围外。

代码实现

照例声明:抄袭、复制代码是非常恶劣的行为。此类行为将会导致您成为作弊者。代码仅供参考。

n,m=map(int,input().split())
people=dict()
for i in range(n):
    side,job=map(str,input().split())
    side=int(side)
    people[i]=[side,job]
p=0
for i in range(m):
    a,b=map(int,input().split())
    if people[p][0]==1:
        if a==0:
            p+=b
        if a==1:
            p-=b
    elif people[p][0]==0:
        if a==0:
            p-=b
        if a==1:
            p+=b
    if p>=n:
        p-=n
    elif p<0:
        p+=n
print(people[p][1])

 

(Python)组合数据类型之字典类型和操作(学习笔记) 这里写自定义目录标题字典类型定义字典类型的函数和方法元素遍历 字典类型定义 1、字典是键值对的集合,键值对之间没有顺序且不能重复 2、采用大括号{}和dict()创建,建立模式如下: {<键1>:<值1>, <键2>:<值2>, … , <键n>:<值n>},其中键和值通过冒号连接,不同键值对通过逗号隔开。 3、字典是包含0个或多个键值对的集合,没有长度限制,可以根据键索引值的内容。 代码演示: >>> s={"中国" 阅读详情

相关推荐

Python学习笔记:字典(dict)

Python学习笔记:字典(dict) 字典(dict)可能是最重要的Python内置数据结构,更常用的名称是哈希映射(hash map)或关联数组(associate array)。它是键值对的集合,键和值都是Python对象。定界符是花括号{},键与值用分号隔开。 读取、插入与设置元素的句法跟访问列表或元组一样。 1、读取字典元素 2、插入字典元素 3、设置字典元素 ...

howard2005的专栏 1059

python字典按值排序输出_在Python中字典按值排序的实现方法

一、sorted高阶函数这种方法更为简洁,更为推荐。d={'a':1,'c':3,'b':2} # 首先建一个字典d#d.items()返回的是: dict_items([('a', 1), ('c', 3), ('b', 2)])d_order=sorted(d.items(),key=lambda x:x[1],reverse=False) # 按字典集合中,每一个元组的第二个元素排列。# ...

weixin_42503264的博客 1万+

Vivado FFT IP核配置与实战:FPGA信号处理硬件加速指南

快速傅里叶变换(FFT)是数字信号处理(DSP)中的核心算法,用于将时域信号转换到频域进行分析。其原理基于离散傅里叶变换(DFT),通过蝶形运算的分解与复用,大幅降低了计算复杂度。在工程实践中,软件实现的FFT难以满足高速实时处理的需求,因此硬件加速方案至关重要。FPGA凭借其并行架构和可定制性,成为实现高性能FFT的理想平台。通过集成专用的FFT IP核,如Vivado中的Pipelined Streaming I/O架构,可以构建流水线化的计算引擎,实现极低延迟和高吞吐量的连续数据流处理。这种硬件方案特

weixin_42536863的博客 649

Python学习系列之字典

一、字典的定义 1.1 定义和基本用法        字典是一种是一个无序、以键值对存储可变容器数据类型,数据关联性强、唯一一个映射数据类型。键:必须是可哈希(不可变的数据类型:字符串、数字、元组、bool),值是唯一的且可存储任意类型对象,类似于Java中的Map接口。字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中,格式...

answer3lin的博客 738

NWD 格式转换 STL 全流程:专业方案与迪威模型网在线转换详解

在3D模型处理中,将NWD文件转换为STL格式是常见的需求,特别是在3D打印和计算机辅助制造等领域。NWD文件由Autodesk开发,主要用于建筑、工程和施工行业,包含丰富的几何图形和材质信息,但因其专有格式和大文件大小,限制了其应用范围。相比之下,STL格式广泛应用于3D打印,仅包含表面几何信息。转换NWD到STL的原因包括拓展模型应用场景和便于模型编辑。转换方法包括使用专业软件如Autodesk Navisworks配合Blender或3ds Max,或使用专门的转换工具如CADExchanger。

技术说明博主 2541

vue2 - 详细实现播放AMR格式音频并实现自定义播放器样式,支持amr音频文件在线地址URL播放、调用服务端API接口获取二进制文件流amr形式、用户本地上传amr文件并实现立即播放(详细代码)

vue2,amr,amr文件播放,vue播放amr音频文件以及在线url跨域问题解决,vue使用audio标签播放amr音频,amr跨域解决,amr网页解码播放,文件上传后怎么播放,vue2播放.amr语音文件,api接口形式调用获取的amr如何播放,vue中如何使用audio元素播放AMR格式的文件,进度条,vue前端如何播放AMR格式的音频文件,vue播放语音文件AMR格式,播放amr格式音频AMR录音机,h5原生audio播放amr格式的音频,VUE2使用benz-amr-recorder 实现解码、

✅ 精选推荐文章 7415

python中函数的使用

1.编写函数实现输入任意两个集合及对应运算符,能够返回两个集合的计算的结果 如集合A = {1,2,3} B = {2,3} 运算符 - 得到计算结果为A与B的差集,Result = {1} 源代码: def fun(set1,set2,op): if op == '|': print("并集:",set1 | set2) elif op == '&': ...

D. 623

OpenClaw进阶实战(二十五):抖音企业号——私信回复与视频评论分析

本文介绍了抖音企业号自动化运营的技术方案,重点解决私信互动效率低和风控严格两大挑战。文章分析了抖音集成的三大技术壁垒(视频复杂性、风控体系、封闭API)并对比了三种技术路径的优缺点。针对不同规模的运营主体,推荐官方API+RPA混合架构或真机RPA+AI辅助的方案。 详细讲解了环境准备步骤,包括抖音Skill安装、Cookie获取和配置文件设置。核心实现部分展示了私信自动回复功能的安全合规实现,包含意图分类、优先级排序、延迟发送等防封禁机制,并提供了完整的Python代码示例。该方案通过模拟人工操作、限制日

PeterPan的博客 159

2个和字典排序相关函数+字典排序算法实现

字典排序思路见下图 //Lexicographic_Permute 字典排序算法 #include<iostream> using namespace std; //判断最后一个排列,是否存在 2个元素是升序的, 并记录最右升序左边那个数的位置 //比如:(1 5 2 6 3) 升序(<1,5>、<2 ,...

weixin_34221073的博客 198

从4A架构的角度出来 帮我分析一下:数字化转型深水区:企业架构如何成为价值重构的核心引擎?

4A 架构的本质是构建企业的数字神经系统,通过业务感知、数据传输、决策执行、技术支撑的闭环,实现从效率提升到生态重构的质变。正如华为通过该架构实现全球研发资源统一调度,某零售集团借此打造线上线下融合的新零售体系,当业务、数据、应用、技术四个维度形成共振时,企业将获得持续进化的数字免疫力,在不确定的市场环境中保持韧性生长。这一过程不仅需要技术工具的升级,更依赖组织文化的变革 —— 从 “部门墙” 到 “能力网” 的转型,才是数字化转型深水区的终极挑战。

金牌架构师 1047

推荐系统[九]项目技术细节讲解z2:搜索Query理解[Term Weight、Query 改写、同义词扩写]和语义召回技术

在 pooling 方法上,我们也尝试过不同层 pooling,或者在多层上增加 attention 聚合 BERT 多层结果,效果和最后一层所有 token 做 average pooling 相当。损失函数方面,在排序阶段使用pairwise比 pointwise 损失函数的效果会更好。

丨汀、的博客 1109

C++类与对象的练习

C++类与对象的练习 创建一个类,用来表示"玩具"有数据:名称,价钱,产地 在使用中,需要获取它的名称,价钱,产地; 注意:根据自己的需求给人打折后给出一个价钱 #include <iostream> #include <Windows.h> #include <string> using namespace std; class Toy { public:...

Liangheng_梁衡的博客 645

【QNX+Android虚拟化方案】12 - 设备虚拟化 之 Passthrough透传、Vdev Trap、HAB Socket 原理解析

【QNX+Android虚拟化方案】12 - 设备虚拟化 之 Passthrough透传、Vdev Trap、HAB Socket 原理解析

|~~~热爱生活、努力学习的小伙汁~~~| 1371

Python编程PTA题解——字典合并

Description:字典合并。输入用字符串表示两个字典,输出合并后的字典,字典的键用一个字母或数字表示。注意:1和‘1’是不同的关键字! Input:输入仅一行,输入在第一行中输入第一个字典字符串 在第二行中输入第二个字典字符串 Output:在一行中输出合并的字典,输出按字典序。"1"的ASCII吗为49,大于1,排序时1在前,"1"在后,其它的也一样。 Sample Input: {1:3...

美好事物 2万+

Open3D——直通滤波(python详细过程版)【2025最新版】

python就一个字:强。博客长期更新,本文最近更新时间为:2025年1月11日。

点云侠的博客 7519

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

[Python学习笔记4]——字典

注意,遍历字典时,会默认遍历所有的键,因此,如果将上述代码中的for name in favorite_languages.keys(): 替换为for name in favorite_languages:,则输出结果不变。注意,在Python3.6及更早的版本中,键值对的排列顺序与添加顺序不同,及在字典中键值对的排列顺序是无序的。键值对是两个相关联的值,指定键时,Python将返回与之相关联的值。注意,在Python3.7及更高版本中,由于字典的排列顺序是有序的,因此遍历返回的值也是按顺序的。

matlabxiao1的博客 1855

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Python3 第十三课 -- 字典

字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(dict 作为 Python 的关键字和内置函数,变量名不建议命名为。键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

蜡笔小流的博客 1393

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Python入门(十三):字典

文章目录1. 创建字典2. 提取字典元素3. 字典基本操作4. 字典与列表 一组键值对的数据结构 每个键对应于一个值 在字典中,键不能重复 根据键可以查询到值 字典长度是可变的,可以通过对键信息赋值实现增加或修改键值对 字典的键只能使用不可变的对象,但字典的值可以使用不可变或可变的对象 字典符合数据库中数据表格的概念,它能表示基于关系模型的数据库 1. 创建字典 花括号{}创建 {<键1>:<值1>, <键2>:<值2>, …, <键n&gt

陈陈陈Chan的博客 587

python学习笔记:字典(dictionary)

python学习:字典(dictionary) 字典(dictionary)与列表(list)的主要差别就是字典是通过键来存取的,而不是偏移,并且字典(dictionary)是无序的,因此字典(dictionary)不支持合并与分片的操作。 字典(dictionary)有时会被叫做关联数组(associative array)或者是散列表(hash),很多时候取代了低级语言中的一些数据结构,具体...

我 1730

Python学习笔记(十三):字典

一、字典 字典里面的数据是以键值对的形式出现的,字典顺序和数据顺序没有关系即字典不支持下标,后期无论数据如何变化,只需要按照对应的键的名字查找即可。 二、字典的创建 字典的特点: 符号为大括号 数据以键值对的形式出现 各个键值对之间用逗号隔开 dict1 = {"name": "Jasmine", "age": 23, "sex": "女"} print(dict1) #空字典 d...

summersneverdie的博客 284

Python基础学习笔记十三(字典)

字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号 , 分割,整个字典包括在花括号 {} 中。

小异常的博客 409

python之字典的读取

对字典所有的键值的读取 D={"键1":"值1","key2":"value2"} A=D.keys() # 获取字典D的所有建 B=D.values() # 获取字典D的所有值 print(A) # A 的数据类型为<class 'dict_keys'> print(B) # B 的数据类型为<class 'dict_values'> 结果为: 利用...

GrofChen的博客 2万+

python学习笔记07 python中的列表、元组、字典、集合

python中的列表、元组、字典、集合

m0_69045813的博客 1111

Python 高手编程系列十三:字典

的 iterkeys()、itervalues()和 iteritems()本来返回的是迭代器,而 Python 3 中并。的 iterkeys()、itervalues()和 iteritems()方法返回的迭代器的特性。字典的 keys()、values()和 items()3 个方法的返回值类型不再是列表。视图对象既有旧的 keys()、values()和 items()方法返回的列表的特性,也有旧。最后一件重要的事情是,在 keys()和 values()方法返回的视图中,键和值的顺序。

2301_77888392的博客 911

学习笔记—— python变量 字典

Python变量 字典字典的定义字典的常用操作增加删除元素修改查询字典的遍历总结 字典的定义 字典dictionary用 {key:value,…} 定义 字典使用键值对**{key : value}**存储数据,键值对之间使用 , 分隔 键 key 是索引:注意 索引不再是 0,1,2… 了,虽然可以用数字,但是一般使用字符串 键 和 值 之间使用 : 分隔 键必须是唯一性:如果有多个,后者会覆盖前者 键 只能使用字符串、数字型或元组 值可以取任何数据类型 xiaoming = {"name": "小

Jchan_Wu的博客 3091

11学习笔记:python中关于字典和集合

python中关于字典和集合的增,删,改,查

dys98的博客 754
上一篇: Python学习笔记(十二):For循环实战(1)-《生活大爆炸版石头剪刀布》题解
下一篇: 点到线段的距离 题解(C++)
Draba_Chen
博客等级 码龄8年 134粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值