python之路 《四》 字典
python中的字典使得python来解决问题变得更方便,顾名思义,就是当我知道关键字(key)那么我就可以通过key来找到与之对应的信息。
简单的来说字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中。
1 b ={
2 'name': 'miki',
3 'age': 18,
4 3: 2
5 }
6 # 如代码所示,这是一个最简单的字典。
7 # 下面的内容我们都将从b中开始展开
1.1增
有了列表的知识之后我们发现其实字典和列表的运用无非也是增删改查。
那么我们首先来看一下字典的-----增
由于前面的列表的内容已经写的很详细了 所以这里我就直接上代码了
1 # 元素增加
2 b['computer'] = 'dnf'
3 # 字典加字典
4 a = {'name': 'ssw',
5 'password': 123456
6 }
7 b.update(a)
8 # 将b传进info如果key相同则覆盖不同则增加
1.2删
1 # 删除b中的‘computer’
2 del b['computer']
3 # 指定删除
4 b.pop('computer')
5 # 随机删除
6 b.popitem()
1.3改
1 # 普通的修改只需要给定数组的key便可以修改key所对应的值
2 b['name'] = 'bookfar'
简单吗?当然只要给出索引就可以任意的修改啦
改成字典与列表都是可以的哦
1.4查
1 print(b)
2 print(b['age']) # 查看 若没有则报错
3 print(b.get('1103')) # 查看 若没有1103则显示done
4 print('name' in b) # 查看name是否在info内
5 # 如果判断成功则都将现实true,否则为false,当然有时候也会是done
6 # 打印非key的值通过这种方法我们可以查看所有的非key的值
7 b.values()
8 # 查看所有的key
9 b.keys()
10 # ()里面的值如果‘sabi’找到了则不做任何改变若没有则怎加一个
11
12
13 b.setdefault('sabi',{'lalala':['digital','wudi']})
14 # 这里应该是属于增加的一部分 党委找到时这种方法是不会报错的所以每一个方法都要注意使用
1.5实际上字典里面甚至可以存入字典与列表的我们可以一起来看一下
1 b = {
2 'name': 'miki',
3 'age': 18,
4 'wocao':{'password': 123456},
5 'information': ['sex', 'email'],
6 3: 2
7 }
8 # 如上我们在字典里面加上了字典与列表
9 # 那么当我们现在想访问‘wocao’里面的password我们改如何做呢?
10 print(b['wocao']['password'])
11 # 那么此时为的输出结果就是123456
12 # 倘如password还是一个字典呢?
13 # 那么我们访问的方法是不是也是一样呢
14 # 举个例子来说我们一个地球是不是有许多国家呢,国家下面又对应着省,省下面又有市
15 # 所以我们就可以使用字典实现多级菜单啦。
16 # 下面字典里面嵌套列表的用法你们自己来试一下吧。也是一样的哟
这里我们就可以布置易个三级菜单的作业啦
要求就是做一个由省市县的三级菜单 当我进入省时打印所有该省的市,再次进入市时,打印所以改县下的东西
例子:
1 # _*_coding:utf-8_*_
2 # /usr/bin/env python3
3 # Author:book Miki
4
5 data = {
6 '江西':{'南昌':{"南昌县":['南昌拌粉','瓦罐汤'],
7 '东湖区':['瑶湖','南昌之心']},
8 '九江':{'德安县':['德安一中','德安二中'],
9 '星子县':['星子一中','星子二中']},
10 '新余':{'分宜':['分宜县','新余下一站'],
11 '渝水区':['江西工程学院','新余学院']}},
12 "福建":{
13 "莆田":{'耐克':['莆田鞋','还是牛逼'],
14 '阿迪达斯':['莆田','的','阿迪达斯']},
15 '厦门':{'思明区':['厦门','的','思明区'],
16 '厦门的不知道':['我','只','知道','鼓浪屿']}
17 },
18 }
19 while True:
20 for i in data:
21 print(i)
22 choss = input('用户选择:')
23 if(choss in data):
24 while True:
25 for i in data[choss]:
26 print(i)
27 choss2 = input('用户选择:')
28 if (choss2 in data[choss]):
29 while True:
30 for i2 in data[choss][choss2]:
31 print(i2)
32 choic = input('选择:')
33 if(choic in data[choss][choss2]):
34 print(data[choss][choss2][choic])
python之路 《四》 字典的更多相关文章
- python之路四
内建函数 内建函数详解: 1. abs(x) abs()函数返回数字(可为普通型.长整型或浮点型)的绝对值.如果给出复数,返回值就是该复数的模.例如: >>>print abs(-2 ...
- Python学习笔记四--字典与集合
字典是Python中唯一的映射类型.所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列.字典是可变类型.字典中的数据是无序排列的. 4.1.1字典的创建及赋值 dict1={ ...
- python之路---05 字典 集合
二十.字典 可变数据类型 {key:value}形式 查找效率高 key值必须是不可变的数据类型 1.增删改查 1).增 dic["新key"] = "新v ...
- Python之路 day2 字典练习题之 三级菜单
#Author:ersa ''' 程序: 三级菜单 要求: 打印省.市.县三级菜单 可返回上一级 可随时退出程序 ''' menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{ ...
- python之路(四)-set集合
set集合 set是一个无序且不重复的元素集合优点:访问速度快,解决重复问题 l1 = [1,2,34,5,6,7,4,3,3,] s2 = set(l1) #可以以列表元祖等作为参数传进来,set集 ...
- Python之路系列笔记
备注:本套笔记内容来源于互联网,只做学习使用,如有侵权请联系本笔记作者. 资料内容 Python之路(一)——Python 初识 Python之路(二)——基础语法 Python之路(三)——函数 P ...
- Python基础知识(五)------字典
Python基础知识(四)------字典 字典 一丶什么是字典 dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 键: 必须是可哈希,(不可变的数据类型 ...
- Python之路【第十四篇】:AngularJS --暂无内容-待更新
Python之路[第十四篇]:AngularJS --暂无内容-待更新
- python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点
python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点: 1 2 3 4 5 6 7 并发编程:线程.进程.队列.IO多路模型 操作系统工作原理介绍.线程.进程演化史.特点.区别 ...
- Python之路(第四十六篇)多种方法实现python线程池(threadpool模块\multiprocessing.dummy模块\concurrent.futures模块)
一.线程池 很久(python2.6)之前python没有官方的线程池模块,只有第三方的threadpool模块, 之后再python2.6加入了multiprocessing.dummy 作为可以使 ...
随机推荐
- MySQL数据库规范 (设计规范+设计规范+操作规范)
I 文档定义 1.1 编写目的 为了在软件生命周期内规范数据库相关的需求分析.设计.开发.测试.运维工作,便于不同团队之间的沟通协调,以及在相关规范上达成共识,提升相关环节的工作效率和系统的可维护性. ...
- jenkins:配置密钥时报错的解决:Failed to add SSH key. Message invalid privatekey(Jenkins 2.257)
一,报错的现象: 1,提示信息: jenkins.plugins.publish_over.BapPublisherException: Failed to add SSH key. Message ...
- WebSocket的理解
Websocket相对于无状态的HTTp协议,是在一次成功连接之后,在关闭请求之前,服务器和客户端能顺利进行信息传输.而不用像HTTP那样每一次都要告诉服务器这个请求者是谁(身份鉴别信息). 在HTT ...
- Hive LLAP
body { margin: 0 auto; font: 13px / 1 Helvetica, Arial, sans-serif; color: rgba(68, 68, 68, 1); padd ...
- 使用经纬度得到位置Geocorder
先得到经纬度再用geocorder 显示位置,需要手机打开位置权限,使用GPS的话把注释去掉,GPS在室内很容易收不到信号,得到位置为空 public class MainActivity exten ...
- 梯度vs Jacobian矩阵vs Hessian矩阵
梯度向量 定义: 目标函数f为单变量,是关于自变量向量x=(x1,x2,-,xn)T的函数, 单变量函数f对向量x求梯度,结果为一个与向量x同维度的向量,称之为梯度向量: 1. Jacobian 在向 ...
- D. The Wu 解析(思維、二進位運算)
Codeforce 1017 D. The Wu 解析(思維.二進位運算) 今天我們來看看CF1017D 題目連結 題目 略,請直接看原題 前言 官方解答實在看不懂...之後還記得的話再補那個做法吧 ...
- router-view组件在app.vue中渲染不出来怎么办
1.在app.vue使用router-view组件直接渲染 页面什么都没显示,可能问题出在路由配置上了,检查路由是否配置完好,路由挂载那里必须使用routes属性 2.在app.vue中router- ...
- Zeal(文档)安装使用
Zeal是一个为软件开发者提供的离线文档浏览器. 一.下载安装 下载地址:https://zealdocs.org/ 二.安装后下载自己需要的文档 1.通过Zeal原生源直接下载文档 Tools -& ...
- MYSQL 那些事
1.一条update语句 1.先通过引擎找到对应的行数据,并加锁 2.对行数据进行修改并调用引擎接口修改这条数据,然后释放锁(此时并没有把数据在磁盘上做出修改) 3.redo log在内存中生成这条u ...