一、定义

什么是字典?

字典是一种数据类型,是一系列数据的组合。

每一个数据单元都分为key和value,key也称主键,具有唯一性,不可重复。value可以理解成是key对应的值。

 info={
1:"wo shi shei",
2:"sun wu kong",
"stu001":"alex",
"stu002":"zhangyang", }

如上,key可以是int型,也可以是字符型,value亦是。

二、字典数据的增删改查

1、查询(只能通过key来查询)

 print(info["stu001"])

查询此键值对应的数据

2、修改数据

info[1]="cbad"               #如果key值存在,则修改数据
info["stu005"]="qwe" #如果key值不存在,则创建数据

3.增添数据

用setdefault()方法,括号内第一个值为key,第二个是value

info.setdefault("stu001","ALEX")      #如果键值存在,不做修改
info.setdefault("stu006","dawang") #如果键值不存在,创建数据
info["stu005"]="qwe"    #如果key值不存在,则创建数据(不推荐此种添加数据的方法,不安全)

4.删除数据

必须写键值,只能用键值。

del info["stu005"]
info.pop("stu005")

三、其它的知识点

1.获取key是否存在的安全方法:

①get()方法

print(info.get("stu001"))

②大众方法

print("stu2001" in info)

不止字典,列表、集合都能用此方法。

2.将所有Key和value的值打印出来

keys()方法和values()方法

print(info.values()) #将所有value的值打印出来
print(info.keys()) #打印所有key的值

3.合并字典

update()方法

info.update(b)  #将两个字典合并,如果有相同的key,其value被覆盖成字典b的值

4.将字典转化成列表输出

print(info.items()) #将一个字典转化成一个列表,每个元素都是一个元组(仅本行有效,字典本身并不改变)

字典本身并没有改变

5.字典反转(将原来的kye和value互换)

 alphabet = {
"a":0,"b":1,"c":2,"d":3,"e":4,"f":5,"g":6,"h":7,"i":8,"j":9,"k":10,"l":11,"m":12,
"n":13,"o":14,"p":15,"q":16,"r":17,"s":18,"t":19,"u":20,"v":21,"w":22,"x":23,"y":24,"z":25,
} # 原字典
dict_new = {value:key for key,value in alphabet.items()} # 将字典反转 key和value互换
print(dict_new)
print(alphabet)

原字典alphabet不改变

四、嵌套字典及其循环

1.字典循环

for i in info:
print(i,info[i])

当中,i是key,info[i]是对应的value

2.嵌套字典

part={
"新疆":{
"北疆":“a”
"南疆":“b”
},
"河北":{
"石家庄":"c"
"保定":"d"
},
"湖南":{
"长沙市":"e"
"株洲市":"f"
},
}

3.嵌套字典的循环

for i in part:
print(i)
for j in part[i]:
print(j)

最新文章

  1. 精选12个时尚的 CSS3 效果【附源码下载】
  2. .net平台下C#socket通信(上)
  3. Do It Wrong, Get It Right
  4. cocos2d-x之计时器初试
  5. Opencv加载和显示图片
  6. Maven运行时异常java.lang.UnsupportedClassVersionError的解决方案
  7. IIS 5.x/6.0/7.0 和 ASP.NET
  8. ESFramework 4.0 快速上手(01) -- Rapid引擎
  9. openfire :openfire 不同类型插件的开发示例
  10. WdatePicker()时间控制方式(转载+原创)
  11. websocket 实现单聊群聊 以及 握手原理+加密方式
  12. 第九章 通过 SMB 共享虚拟机
  13. 使用WPF教你一步一步实现连连看(二)
  14. Python 全栈开发六 常用模块学习
  15. iOS 处理缓存的三种方法
  16. [Java学习] java泛型通配符和类型参数的范围
  17. cogs1538 [AHOI2005]LANE 航线规划
  18. Linux ftp命令的使用方法 -- 转
  19. aarch64_o1
  20. pageadmin CMS网站建设教程:网页设计的常用参数

热门文章

  1. Java中array、List、Set互相转换
  2. BZOJ1101: [POI2007]Zap(莫比乌斯反演)
  3. 开发Spring过程中几个常见异常(二):Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'a' define
  4. 定位公网丢包的工具 mtr
  5. ThinkPHP框架知识
  6. JVM调优日志解析分析
  7. Testlink1.9.17使用方法(第十三章 使用中遇到的问题)
  8. [译]在Linux上的提高MySQL/MariaDB安全性的12条建议
  9. ELK的sentinl告警配置详解
  10. [20190219]那个更快(11g).txt