Python入门:数据结构之字典(dict)(2)
之前一直使用dir(dict)的时候一直把前后有双“_”的方法也一起放在里面,既然现在也不讲,太多也看着挺烦。
昨天看书的时候顺便看到这个Pythonic的写法--使用列表推导式。这样带“_”也就没有了,剩下的字典操作方法,我尽力说明清楚。
[d for d in dir(west_team_msg) if not d.startswith('_')]
['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
至于什么是列表推导式,后面小结的时候会结合list、tuple、dict的特性加以说明。其实是个很简单的东西,也非常好用,在很多场合可以避免使用遍历+append的操作。
言归正传,自从悟空被大大王吃到肚子里后,就没了消息。三藏便让八戒去打听。八戒哪有悟空机灵,居然在妖怪洞穴门口就开始喊了:我大师兄呢?
里面小妖一看:怎么来个猪头猪脑的,是西天取经队伍的?于是拿出字典开始搜索。
for key,value in west_team_msg.items(): if value["外表"] == "猪": print(key)
这个地方涉及到字典的一个items()方法,作用我们大致看一下 [in]:west_team_msg.items() [out]:dict_items([('三藏', {'外表': '人', '职业': '和尚', '兵器': '无', '事迹': '西天取经', '故地': '东土大唐'}), ('悟空', {'外表': '猴子', '职业': '和尚', '兵器': '金箍棒', '事迹': '大闹天宫', '故地': '花果山', '技能': '七十二变'}), ('八戒', {'外表': '猪', '职业': '和尚', '兵器': '九齿钉耙', '事迹': '调戏嫦娥姐姐', '故地': '高老庄'}), ('悟净', {'外表': '沙妖', '职业': '和尚', '兵器': '降妖宝杖', '事迹': '打碎琉璃盏', '故地': '流沙河'}), ('小白龙', {'外表': '马/人/龙', '职业': '和尚/官二代', '兵器': '大宝剑', '事迹': '火烧明珠', '故地': '西海龙宫'})])
输出有点长,我们稍微格式化一下,看的清楚些 dict_items( [('三藏', {'外表': '人', '职业': '和尚', '兵器': '无', '事迹': '西天取经', '故地': '东土大唐'}), ('悟空', {'外表': '猴子', '职业': '和尚', '兵器': '金箍棒', '事迹': '大闹天宫', '故地': '花果山', '技能': '七十二变'}), ('八戒', {'外表': '猪', '职业': '和尚', '兵器': '九齿钉耙', '事迹': '调戏嫦娥姐姐', '故地': '高老庄'}), ('悟净', {'外表': '沙妖', '职业': '和尚', '兵器': '降妖宝杖', '事迹': '打碎琉璃盏', '故地': '流沙河'}), ('小白龙', {'外表': '马/人/龙', '职业': '和尚/官二代', '兵器': '大宝剑', '事迹': '火烧明珠', '故地': '西海龙宫'}) ])
简化下得到 [('三藏',{}) ('悟空',{}) ('八戒',{}) ......] "三藏","悟空"这些其实是west_team_msg的键(key), 后面的{}就是west_team_msg的键对应的值(value) 也就是说,items()的作用,就是把字典里面所有的键值对单独拿出来编成(key,value)这样的元组形式 那keys,values的作用也很好理解了:就是单独把键或者值拿出来
for key,value in west_team_msg.items(): if value["外表"] == "猪": print(key)
OUTPUT:八戒
这里用for就会遍历items()得到的键值对元组, 如果里面有一个值对应"外表"是"猪",就打印出来,那我们看到得到的结果是"八戒"
写的程序都比较简单,仅仅作为入门演示,实际工作中要尽可能逻辑性强化一点。
这些小妖一看是三藏的徒弟八戒,于是一起大喊道,你大师兄被我们大王吃的,现在估计连骨头渣子都不剩了。
八戒一听大师兄没了,垂头丧气的就回去了。回到村子后,有听悟净说师傅也被不知道哪来的妖风给卷走了。
悟净很着急,八戒却动了歪脑筋:沙师弟,你看师傅和大师兄都没了,不如我们把行李分了,你回你的流沙河,我回我的高老庄。说着就动起了手。
things = {} things["八戒"] = [] things["悟净"] = []
things["悟净"].append("师傅的袈裟") things["八戒"].append("化缘的金钵")
悟净一把抢了过来,把八戒分东西的字典给清除了。
things.pop("八戒") #pop()根据传入的键删除键值对 things.popitem() #popitem()直接把字典里面的一组键值对删除
当然,用clear()是最快的,直接一次性删除字典里面的所有键值对,不过这里悟净是一样一样把东西收回来了,所以分次删除就行。
八戒生气的坐在一边:反正没了师傅,西天也不用去了,分了算了。
悟净劝八戒到:大师兄本领高强,我不相信会被妖怪吃了。于是强拉着八戒一起去找悟空去。
预知后事如何,请听下回因式分解。完结篇将会把剩下的一些操作方法讲完。
创作不易,请大家多多关注、点赞、在看三连支持,谢谢~~
Python入门:数据结构之字典(dict)(2)相关推荐
- python入门(12)dict
python入门(12)dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例 ...
- Python for循环遍历字典(dict)的方法
本文主要Python中,Python2.x和Python3.x分别使用for循环遍历字典(dict)的方法,以及相关的示例代码. 原文地址:Python for循环遍历字典(dict)的方法
- python数据结构之字典(dict)——超详细
字典(dict) 1.什么是字典 字典是具有映射关系的一个集合,有自己的标志性符号,用{}来定义.字典由多个键以及其对应的键值共同构成的,字典是无序的,只讲究对应关系,并且字典中的键是独一无二的 1. ...
- Python入门4_之字典的使用
说到python的字典,我第一个想到的是与之类似的JSON,也同样是键值对. 前面第一讲有那么一个隐患的问题,我们说八进制数都是以0开头的,但是有的时候,我们要表示以0开头的十进制数,怎么办?最常见的 ...
- 十二章 Python入门系列之字典
系列文章目录 第一章 Python入门系列之介绍 第二章 Python入门系列之PyCharm 第三章 Python入门系列之注释 第四章 Python入门系列之变量 第五章 Python入门系列之输 ...
- python set集合_Python字典(dict)和集合(set)
想必大家都有查字典的经历吧,让我们再回顾一下查字典的步骤:根据拼音或者边旁找到这个字,然后翻到这个字对应的页数,就能看到这个字的详细解释啦. Python字典(dict)其实也是差不多的概念,在字典( ...
- Python入门--列表,字典,元组,集合总结
#列表,字典,元组,集合总结 #数据结构--------------->是否可变---------------------->是否重复------>是否有序---->定义符号 ...
- [转载] python string 字符串转换为字典 dict
参考链接: Python | 将列表字符串转换为字典 dict = eval(string)
- 【Python 实战基础】字典 dict 和 json 如何相互转化
目录 一.实战场景 二.主要知识点 三.菜鸟实战 1.创建 python 文件 2.文件目录 3.运行结果 一.实战场景 字典 dict 和 json 如何相互转化, 将字典数据转 json 格式写入 ...
- Python:六、字典dict,元组tuple与集合set的使用
一.字典dict[重要] 1.1 字典概念 语法: {键1: 值1, 键2: 值2, 键3: 值3, -, 键n: 值n} 说明:键值对: key-value 字典和列表类似,都可以用来存储多个数据 ...
最新文章
- 芒果TV 2021 互联网人才招聘
- Openstack Paste.ini 文件详解
- 将redis作为windows服务安装
- Could not find a version that satisfies the requirement PIL
- 数学之美 系列 12 - 余弦定理和新闻的分类
- MTK:UART串口收发数据
- 分享2011年10月网上随机搜集的超酷超有趣的web开发和Javascript代码
- python分布式任务调度_Python开源任务调度框架介绍
- 树莓派摄像头模块(Pi Cam)的安装使用
- 硅芯片拆解:早期 555 定时器芯片内部一览
- python tkinter 窗口最大化
- 多线程测速软件带宽叠加设置
- 用Visio画UML顺序图
- IT 界惊现文豪!华为领导及阿里 P10 遭吐槽!
- Android拦截黑名单(简易版)
- QChart数据可视化应用
- iOS自动构建以及打包命令(xcodebuild,xcrun)
- c语言压力变送器程序设计,基于单片机的压力变送器设计
- 英语不好,能学好计算机吗?
- 申请域名绑定IP开通80端口记录
热门文章
- 计算机无steam服务,有了这个,或许以后都不用登录电脑的Steam了
- Linux自动启动ssh方法
- 【Excel】取消合并单元格后快速填充
- Spring的bean是怎么保证线程安全的
- php获取m3u8的地址,如何获取各大平台的播放地址(获得优酷的m3u8播放地址)为例...
- 关于段地址和偏移地址的理解
- c语言 long int最大数,long整型的最大值跟处理器位数有关
- 医学超声成像—合成孔径法(Synthetic Aperture Methods)[3]
- java绘图-常用条形码类型组成及使用说明
- 搭建kettle 源码工程报[ui/spoon.xul]找不到错误的解决方案