18.07.06

字典

dict{}:括起来的键值对是字典.{key:value}

字典中的key必须是可哈希的(不可变的).value没有限制.

整数.字符串.元组是不可变的,列表是可变的.

增:

例:

dic={"A":"a"}dic["B"]="b"print(dic)     ==<{‘A‘: ‘a‘, ‘B‘: ‘b‘}>

例:  如果key重复了,value会被替换.

dic={"A":"a"}dic["B"]="b"dic["B"]="2"   #赋值print(dic)     ==<{‘A‘: ‘a‘, ‘B‘: ‘2‘}>

setdefault 如果字典中包含这个key则不再继续保存.

例:

dic={"A":"a"}dic.setdefault("C","c")print(dic)    ==<"A":"a","C":"c">
dic.setdefault("C",3)print(dic)    ==<"A":"a","C":"c">

删除:

(1)pop(key)

例:

dic={"A":"a","B":"b","C":"c"}dic.pop("A")print(dic)    ==<{‘B‘: ‘b‘, ‘C‘: ‘c‘}>

例:

dic={"A":"a","B":"b","C":"c"}ret=dic.pop("A")print(ret)    ==<a>

(2)del dic[key]

例:

dic={"A":"a","B":"b","C":"c"}del dic["B"]print(dic)    ==<{‘A‘: ‘a‘, ‘C‘: ‘c‘}>

(3)popitem()  随机删除

例:

dic={"A":"a","B":"b","C":"c"}ret=dic.popitem()print(ret)    ==<(‘C‘, ‘c‘)>print(dic)    ==<{‘A‘: ‘a‘, ‘B‘: ‘b‘}>

(4)clear  清空

例:

dic={"A":"a","B":"b","C":"c"}dic.clear()print(dic)     ==<{}>

修改:

(1)可以用key直接修改.

例:

dic1={"A":1,"D":"d","C":3}
dic1["C"]=dic1["C"]-2print(dic1)     ==<{‘A‘: 1, ‘D‘: ‘d‘, ‘C‘: 1}>

(2)字典1.update(字典2) 把字典2添加的字典1中,如果字典2中key和字典1中的key重复则替换vlaue,如果不重复,则添加.

例:

dic={"A":"a","B":"b","C":"c"}dic1={"A":1,"D":"d","C":3}
dic.update(dic1)print(dic)     ==<{‘A‘: 1, ‘B‘: ‘b‘, ‘C‘: 3, ‘D‘: ‘d‘}>

查找:

(1)用key直接查找

例:

dic={"及时雨":"宋江","小李广":"花荣","易大师":"剑圣"}
print(dic["易大师"])   ==<剑圣>

(2)get 如果key不存在则返回None,如果不想找回None可以添加一个默认值.  key存在则返回value

例:

dic={"及时雨":"宋江","小李广":"花荣","易大师":"剑圣"}print(dic.get("李光","默认值"))    ==<默认值>

(3)setdefault  先判断字典中有没有key,如果没有则添加.  再用这个key去字典中查询,返回查到的结果.

例:

dic={"及时雨":"宋江","小李广":"花荣"}ret=dic.setdefault("诺手","诺克")print(ret)     ==<诺克>    #查询print(dic)     ==<{‘及时雨‘: ‘宋江‘, ‘小李广‘: ‘花荣‘, ‘诺手‘: ‘诺克‘}>    #添加 

相关操作:

(1)keys  返回所有的key  结果像集合像列表但不是列表  可以进行迭代循环.

例:

dic={"及时雨":"宋江","小李广":"花荣"}print(dic.keys())    ==<dict_keys([‘及时雨‘, ‘小李广‘])>
for s in dic.keys():    print(s)       ==<及时雨   小李广>

(2)values 返回所有的value值   结果像集合像列表但不是列表  可以进行迭代循环.

例:

dic={"及时雨":"宋江","小李广":"花荣"}print(dic.values())     ==<dict_values([‘宋江‘, ‘花荣‘])>for s in dic.values():    print(s)     ==<宋江   花荣>

(3)items  返回所有key,value值     结果像列表但不是列表,列表中的元素是元组.

例:

dic={"及时雨":"宋江","小李广":"花荣"}print(dic.items())      ==<dict_items([(‘及时雨‘, ‘宋江‘), (‘小李广‘, ‘花荣‘)])>#键值对for s in dic.items():    print(s)          ==<(‘及时雨‘, ‘宋江‘)   (‘小李广‘, ‘花荣‘)>    print(s[0])==<及时雨   小李广>    print(s[1])==<宋江   花荣>根据解构的一种算法:
dic={"及时雨":"宋江","小李广":"花荣"}for k,v in dic.items():    print(k)    ==<及时雨   小李广>    print(v)==<宋江   花荣>

解构,解包

例:

a,b=1,2print(a)   ==<1>print(b)   ==<2>

例:

a=1,2  ==>  a=(1,2)print(a)   ==<(1,2)>

例:

a,b=(1,2)print(a)    ==<1>

字典的嵌套

例:

dic={"name":"汪峰",     "age":58,     "wife":{"name":"章子怡",             "age":37,             "salar":1800000},     "children":[{"name":"老大","age":18},                {"name":"老二","age":7}]}print(dic["wife"]["salar"])          ==<1800000>print(dic["children"][1]["age"])     ==<7> #第二个孩子的年龄

原文地址:https://www.cnblogs.com/gxj742/p/9275640.html

时间: 2024-10-08 17:37:19

18.07.06的相关文章

张珺 2015/07/06 个人文档

姓名 张珺 日期 中蓝公寓蓝芳园D507,2015/07/06 主要工作及心得 今天,是我们软件工程课程设计的第一天.在课设的一开始,我们进行了整体的讨论设计,决定了设计的实现方式.整体架构,并进行了详细的分工,便于在之后的时间内高效地完成设计及其他相应工作. 遇到的问题 今天遇到的最主要的问题在于我们对于各部分的实现方式存在一些分歧,此外,在整体的实现方式上我们也花费了较多的时间进行讨论. 解决方法 通过小组讨论,我们最终决定软件以C/S架构模式来完成.对于其他遇到的问题,,每个人都阐述自己的

18.07.20(lambda().sorted().filter().map().递归.二分查找)

1.lambda() 匿名函数 lambda表示的是匿名函数,不需要用def来声明,一句话就可以声明一个函数 语法:函数名 = lambda 参数:返回值 注意: (1)参数可以有多个,多个参数用逗号隔开 (2)匿名函数不管多复杂.只写一行.且逻辑结束后直接返回数据 (3)返回值和正常函数一样1,可以是任意数据类型 我们通过__name__()查看函数名字 例: a = lambda x : x * xprint(a(5)) ==>25print(a.__name__) ==><lamb

18.07.01 luoguP1002 过河卒

题目描述 棋盘上 AA 点有一个过河卒,需要走到目标 BB 点.卒行走的规则:可以向下.或者向右.同时在棋盘上 CC 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为“马拦过河卒”. 棋盘用坐标表示, AA 点 (0, 0)(0,0) . BB 点 (n, m)(n,m) ( nn , mm 为不超过 2020 的整数),同样马的位置坐标是需要给出的. 现在要求你计算出卒从 AA 点能够到达 BB 点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步

18.07.04

一.编码 1.ASCII  8位(bit) 1个字节  最多有256个位置,包含英文字母大小写.数字.标点等特殊符号. 2.国标码 GBK 16位(bit) 2个字节 包含大部分常用的汉字. 3.万国码 Unicode 32位(bit) 4个字节 4.utf-8 :    英文  8位(bit) 1个字节 欧洲文字  16bit  2个字节 中文   24bit 3个字节 8bit=1byte    1byte=1kb   1024kb=1mb   1024mb=1GB   1024GB=1TB

18.07.05

一.list列表 列表可以装大量的数据,不限制数据类型.      表达方式:[],方括号中的每项用","隔开.     列表和字符串一样,有索引和切片 1.列表的增删改查 (1).append("添加的元素")向列表中添加一个元素,默认元素添加到列表的末尾. 例: lst = ["周杰伦", "王力宏", "周润发"]lst.append("伍佰") print(lst) ==<

18 12 06 sql 的 基本语句 查询 条件查询 逻辑运算符 模糊查询 范围查询 排序 聚合函数 分组 分页 连接查询 自关联 子查询

-- 数据的准备 -- 创建一个数据库 create database python_test charset=utf8; -- 使用一个数据库 use python_test; -- 显示使用的当前数据是哪个? select database(); -- 创建一个数据表 -- students表 create table students( id int unsigned primary key auto_increment not null, name varchar(20) default

场景 工作项序号123:用户过关卡,最后修改时间2017.07.06

1.背景 1)典型用户:小王 2)用户的需求/迫切需要解决的问题 a.小王:由于个人能力及关卡难度所限,无法解答出当前关卡的几何问题,所以无法进行之后的关卡. b.小王:用户需求可以获得关卡提示,关卡解锁视频,直接跳过该关卡所消耗的"钻石"(当前假设消耗品为"钻石"). c.小王:如何获得"钻石",仅通过花钱购买的话获得方法过于单一,并且有"坑钱"的嫌疑. 3)假设:a.游戏奖励钻石系统已经完成.(包括新用户奖励,老用户回馈,

【第二组】典型场景:进行积分兑换功能工作序号 006 2017/07/06 场景

一.背景 1)典型用户:李二蛋[主要],王尼玛[主要] 2)用户的需求/迫切需要解决的问题 A: 李二蛋在设计任务之后,觉得设计这个任务没什么成就感,就不想再次参与设计任务了: 李二蛋在设计任务时希望能添加一些别人没有的功能,一定要比其他人的更炫酷,更加与众不同. B: 王尼玛在进行任务解密的过程中遇到了瓶颈,社区中没人愿意免费提供帮助,总是有人10块钱给你个提示这样,他想要获取一些不用花钱就能得到的提示信息. 3)假设 本软件发布功能已经实现: 本软件游戏主流程已经实现: 二.场景 A: 李二

[第五组] 典型用户 2017.07.06

典型用户1 姓名 A 性别,年龄 女,21 收入 暂无 知识 大学 生活 每天学习,休闲,时间充足,多在食堂吃 动机 每餐选择吃什么的时候很纠结 偏好 低脂低油 比例 ? 场景 时间充足选择吃什么,菜比较全,希望选个合口味的菜 描述 有充足的时间决定吃什么 典型用户2 姓名 李雷 性别,年龄 男,21 收入 暂无 知识 大学 生活 每天课比较多,在食堂吃 动机 下课晚,饭难抢 偏好 肉 比例 ? 场景 去食堂的路上,不知道食堂还有什么 描述 没有足够时间,只能看食堂有什么 典型用户3 姓名 李喷