初学Python——字典
一、定义
什么是字典?
字典是一种数据类型,是一系列数据的组合。
每一个数据单元都分为key和value,key也称主键,具有唯一性,不可重复。value可以理解成是key对应的值。
1 info={ 2 1:"wo shi shei", 3 2:"sun wu kong", 4 "stu001":"alex", 5 "stu002":"zhangyang", 6 7 }
如上,key可以是int型,也可以是字符型,value亦是。
二、字典数据的增删改查
1、查询(只能通过key来查询)
1 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互换)
1 alphabet = { 2 "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, 3 "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, 4 } # 原字典 5 dict_new = {value:key for key,value in alphabet.items()} # 将字典反转 key和value互换 6 print(dict_new) 7 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)

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
java基础学习_多线程02_多线程、设计模式_day24总结
java基础学习_多线程02_多线程、设计模式_day24总结 ============================================================================= ============================================================================= 涉及到的知识点有: 1:多线程(理解) (1)JDK5中Lock锁的使用 (2)Lock接口的方法 (3)死锁问题的描述和代码体现 (4)生产者和消费者多线程体现(线程间通信问题) (5)线程的状态转换图及常见的线程执行情况 (6)线程组 (7)线程池 (8)多线程实现的第三种方案:依赖于线程池而存在的 (9)匿名内部类方式使用多线程 (10)定时器 (11)多线程常见的面试题 2:设计模式(理解) (1)面向对象思想的设计原则的概述 (2)设计模式 (3)常见的设计模式 (4)Runtime类的概述和应用 =======================================================...
- 下一篇
你真的会用ABAP, Java和JavaScript里的constructor么?
如果constructor里调用了一个成员方法,这个方法被子类override了,当初始化一个子类实例时,父类的构造函数被的调用,此时父类构造函数的上下文里调用的成员方法,是父类的实现还是子类的实现?你能不用运行代码,就能准确说出这些语句会打印什么出来呢? ABAP class ZCL_SUPER definition public create public . public section. methods CONSTRUCTOR . methods SET_I importing !IV_I type INT4 . protected section. private section. data MV_SUPER type INT4 . ENDCLASS. CLASS ZCL_SUPER IMPLEMENTATION. method CONSTRUCTOR. me->set_i( 100 ). endmethod. method SET_I. me->mv_super = iv_i. endmethod. ENDCLASS. class ZCL_SUB definit...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 设置Eclipse缩进为4个空格,增强代码规范
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2全家桶,快速入门学习开发网站教程
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Thymeleaf,官方推荐html解决方案