一. 字典

字典是以key:value的形式来保存数据的,用{}表示

  字典的增删改查

    字典的增加

dic = {"意大利": "李云龙", "美国": "美国往事"}
dic["日本"] = "东京审判" # 新key表示添加
dic['韩国'] = "釜山行"
print(dic) setdefault (难点)
有添加的功能,如果key是存在的. 不添加
流程: 判断你给的key是否在字典中存在了.如果已经存在了. 就不再新增. 如果不存在. 执行新增操作
dic.setdefault("美国", "三傻大闹宝莱坞")
print(dic)

    字典的删除

dic = {"张艺谋":"红高粱", "李安":"断臂山", "陈凯歌":"霸王别姬", "郭德纲":"祖宗十九代"}
dic.pop("郭德纲") # 你要记住的
dic.popitem() # 随机删除一项. 在python早期版本 字典是无序的.
del dic["李安"]
dic.clear() # 清空
print(dic)

    字典的改动

dic = {"河南":"胡辣汤", "开封": "灌汤包", "武汉":"热干面"}
dic['河南'] = "烩面" # 老key = 新值
print(dic) dic1 = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
dic2 = {"赵四":"宝宝", "刘能":"萌萌", "皮校长":"皮长山"}
dic1.update(dic2) # 把dic2怼到dic1里面. 把dict2中的内容更新到dic1
print(dic1)
print(dic2)

    字典的查询

dic1 = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
1. 直接使用key就可以拿到value
print(dic1["赵四"]) # KeyError: '赵四四' key不存在 2. get(key)
print(dic1.get("刘能能")) # None 当key不存在返回None
print(dic1.get("刘能能", "没有这个人")) # 当key不存在. 返回第二个参数. 默认第二个参数是None 3. setdefault() 第一个功能是添加(当key不存在). 第二个功能是查询(根据你给的key查询)
整个执行流程: 判断给的key是否存在. 如果存在. 就不执行新增流程.直接查询出这个key对应的value
如果key不存在. 先执行新增操作. 再使用key把对应的value查询出来
ret = dic1.setdefault("皮长山", "皮校长")
print(ret) # 皮校长

  字典的遍历

dic = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
1. 使用for循环直接遍历字典的key
for key in dic:
print(key)
print(dic[key]) 2. 可以使用字典的items()+解构可以直接获取到key和value
for k, v in dic.items():
print(k)
print(v)

  字典的嵌套

wf = {
"name":"汪峰",
"age":52,
"hobby":["唱歌", "上头条", "穿皮裤"],
"wife": {
"name": "章子怡",
"age": 49,
"hobby":["演戏", "上电视", "当导师"],
"tishen": {
"name":"萌萌",
"age":28
},
"zhuli":{
"name":"磊磊",
"age": 20
}
},
"zhuli":{
"name":"宝宝",
"age":23,
"hobby":["抽烟","喝酒","烫头"]
},
"children":[{"name":"汪老大"}, {"name":"汪老二"}]
}
wf['children'][1]["age"] = 2
print(wf)
# print(wf['zhuli']['name']) 汪峰老婆替身的名字
print(wf['wife']['tishen']['name'])
# 汪峰老婆的第二个爱好
print(wf['wife']['hobby'][1])
汪峰助理的第三个爱好
print(wf['zhuli']['hobby'][2]) 汪峰的助理+10岁
wf['zhuli']['age'] = wf['zhuli']['age'] + 10
汪峰的老婆添加一个爱好("导戏")
wf['wife']['hobby'].append("导戏") # 添加完毕了
删除汪峰助理的"抽烟"爱好
wf["zhuli"]["hobby"].remove("抽烟")
print(wf)

二 . set 集合

# 去重
lst = ["麻将", "牌九", "骰子", "扑克", '篮球', "骰子", "扑克", '篮球', "扑克", '篮球', "扑克", '篮球']
把列表转化成集合 x 转化成y类型 y()
s = set(lst)
# print(s)
把集合变回列表
lst = list(s)
print(lst) # 顺序是乱的

python之路--字典的更多相关文章

  1. python之路四

    内建函数 内建函数详解: 1. abs(x) abs()函数返回数字(可为普通型.长整型或浮点型)的绝对值.如果给出复数,返回值就是该复数的模.例如: >>>print abs(-2 ...

  2. Python学习笔记四--字典与集合

    字典是Python中唯一的映射类型.所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列.字典是可变类型.字典中的数据是无序排列的. 4.1.1字典的创建及赋值 dict1={ ...

  3. python之路---05 字典 集合

    二十.字典 可变数据类型 {key:value}形式   查找效率高   key值必须是不可变的数据类型 1.增删改查 1).增    dic["新key"] = "新v ...

  4. Python之路 day2 字典练习题之 三级菜单

    #Author:ersa ''' 程序: 三级菜单 要求: 打印省.市.县三级菜单 可返回上一级 可随时退出程序 ''' menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{ ...

  5. python之路(四)-set集合

    set集合 set是一个无序且不重复的元素集合优点:访问速度快,解决重复问题 l1 = [1,2,34,5,6,7,4,3,3,] s2 = set(l1) #可以以列表元祖等作为参数传进来,set集 ...

  6. Python之路系列笔记

    备注:本套笔记内容来源于互联网,只做学习使用,如有侵权请联系本笔记作者. 资料内容 Python之路(一)——Python 初识 Python之路(二)——基础语法 Python之路(三)——函数 P ...

  7. Python基础知识(五)------字典

    Python基础知识(四)------字典 字典 一丶什么是字典 ​ dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 ​ 键: 必须是可哈希,(不可变的数据类型 ...

  8. Python之路【第十四篇】:AngularJS --暂无内容-待更新

    Python之路[第十四篇]:AngularJS --暂无内容-待更新

  9. python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点

    python 闯关之路四(下)(并发编程与数据库编程)   并发编程重点: 1 2 3 4 5 6 7 并发编程:线程.进程.队列.IO多路模型   操作系统工作原理介绍.线程.进程演化史.特点.区别 ...

  10. Python之路(第四十六篇)多种方法实现python线程池(threadpool模块\multiprocessing.dummy模块\concurrent.futures模块)

    一.线程池 很久(python2.6)之前python没有官方的线程池模块,只有第三方的threadpool模块, 之后再python2.6加入了multiprocessing.dummy 作为可以使 ...

随机推荐

  1. http: server gave HTTP response to HTTPS client & Get https://192.168.2.119/v2/: dial tcp 192.168.2.119:443: getsockopt: connection refused

    http: server gave HTTP response to HTTPS client 出现这问题的原因是:Docker自从1.3.X之后docker registry交互默认使用的是HTTP ...

  2. HTTP请求报文解剖

    转自:https://www.iteye.com/topic/1124408 HTTP请求报文由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求报文: ①是请求方法,GET和POST是最常 ...

  3. 【转】解决在Android设备播放音频与其他应用重音的问题,并监听耳机的控制按钮

    概述 在安卓开发中免不了需要播放一点音乐了,音频了.但是这时候有别的应用正在播放,这时候就会出现重音的现象,完全影响用户体验,我们的项目就遇上了这样的尴尬,然后查找了一些文档,记录一下: 管理音频焦点 ...

  4. Linux 创建静态库(.a)和动态库(.so)

    0. 回顾一下 gcc 选项 ============================================== -E : 仅做预处理,例如去注释,宏展开,include 展开等 -S : ...

  5. LCA--倍增法

    一般来求LCA有3种方法 1.倍增 2.RMQ+欧拉序 3.tarjan(离线) 本文将倍增求lca 这个算法是很常见很常见的 也是较好理解的 (我也不明白假期学长讲的时候我为什么死活都不明白 自闭q ...

  6. Python脱产8期 Day10 2019/4/24

    一 函数 1.定义:完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数>>工具. 2.函数的优点:1.避免代码的冗余:2.让程序结构代码更加清晰:3.让代码更加具 ...

  7. [Micropython] TPYBoard STM32F407开发板运行第一个脚本

    从这篇教程开始将动手在TPYBoard STM32F407开发板上运行 Python 脚本,下面教大家拿到这个开发板后怎么用!(该款开发板某宝上有售) 1 连接开发板 通过 USB 线连接你的 PC ...

  8. Java线程安全与锁优化

    线程安全的严谨定义: 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交题执行,也不需要进行额外的同步,或者调用方法进行其他任何操作,调用这个对象的行为都可以或者正确的结果,那么这 ...

  9. Luogu P2056 [ZJOI2007]捉迷藏

    入坑动态点分治的题目,感觉还不错被卡常后重构代码 首先静态点分治相信大家肯定都会,就是不断找重心然后暴力计算每棵子树内的贡献. 这题如果只有单次询问,我们很容易想到对于每个分治中心的所以儿子的子树中找 ...

  10. C#开发微信门户及应用(46)-基于Bootstrap的微信门户应用管理系统功能介绍

    在前面介绍很多的微信框架,基本上都采用EasyUI的界面来搭建的微信框架,如随笔<C#开发微信门户及应用(8)-微信门户应用管理系统功能介绍>介绍的一样,不过随着微信的H5应用越来越多,因 ...