博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day 5.基本数据类型:字典(dict)
阅读量:6681 次
发布时间:2019-06-25

本文共 2511 字,大约阅读时间需要 8 分钟。

本节内容:

  1.字典介绍

  2.字典增删改查和其他操作

  3.字典的嵌套

一 字典的介绍

  1.字典(dict)   是python中唯一的一个映射类型.  以{key:value}括起来的键值对组成.

  2.键值对:    key_value

      key是唯一的.  是可哈希的,也就是不可改变的.

      value无限制  

  已知可哈希的(不可变,作为key)的数据类型:   int,str,tuple,bool

  不可哈希的(可变的,不可作为key)数据类型:   list,dict,set

  3.语法              dic={key1:value,key2:value,...}

   dict保存的数据是无序的,不能进行切片工作,只能通过key来获取字典中的数据

二 字典的增删改查(字典是无序的)和其他操作

  1.增加

  1) dict[不存在的key] = value     #再次输入相同的key,会覆盖前面的数据

  2) dic.setdefault(key,value)   #如果再次输入相同的key,不会更改以前的数据

  2.删除

  1)dic.pop(key)              #将key这一项对应的键值对删除,并返回键值对的value给ret

  2)del dict[key]         #将key对应的键值对删除

  3)dic.popitem()         #随机删除一对键值对

  4)dic.clear()  #清空字典,输出结果是 {}

  3.修改

  1)dict[存在的key] = 新value

  2)d1.update(d2)   #把d2的k-v键值对更新到d1中,d2不变,更新d1,如果存在了相同的key,则将d1中的value替换;否则,就添家加到的d1.

  4.查询(一般用key来查找具体的数据,dic指已经定义的字典)

  1) print(dic[key])

  2) dic.get(key, 默认值)

  3)    a=dic.setdefault(key,value)

    print(a)

  # 1. 首先判断原来的字典中有没有这个key . 如果没有. 执行新增   # 2. 用这个key去字典中查询, 返回查到的结果

  4)  dict[key]      #找到索引位置的元素

  5.其他相关操作

  1. keys() 返回所有字典的key的集合(高仿列表)

dic = {
"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}print(dic.keys()) # 拿到所有的key, 返回key的集合. 像是列表. 但不是列表. # 结果是:dict_keys(['及时雨', '易大师', '维恩'])for key in dic.keys(): # 可以进行迭代循环 print(key) # 输出所有的key

  2. values() 返回所有的value的集合

dic = {
"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}print(dic.values()) # 高仿列表,可以进行迭代循环 结果: dict_values(['宋江', '剑圣', '暗影猎手'])for value in dic.values(): # 遍历打印出高仿列表里的value print(value) # 输出所有的value # 结果是: 宋江 剑圣 暗影猎手

  3. items() 返回键值对. 元组

dic = {
"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}print(dic.items()) # 拿到键值对 # 结果是(高仿表):dict_items([('及时雨', '宋江'), ('易大师', '剑圣'), ('维恩', '暗影猎手')])for k, v in dic.items(): # 遍历dict,输入键值对 print(k , v) ''' 结果是: 及时雨 宋江易大师 剑圣维恩 暗影猎手 '''

  4.解构:(解包)

    a, b = (1, 2)   

    print(a,b)     #1  2

a, b = (1, 2)print(a)    #1print(b)    #2
a, b, c = ("马化腾", "马云", "马良")print(b)     #马云
a, b = [1, 2]print(a, b)    #1 2

三 字典的嵌套

# 字典的嵌套dic = {    "name":"汪峰",    "age": 58,    "wife":{        "name":"国际章",        "salary": 180000,        "age": 37    },    "children":[        {
"name":"老大", "age": 18}, {
"name":"老二", "age": 118} ]}print(dic["children"][1]["age"]) #118print(dic["wife"]['salary']) #180000

四,字典的遍历

dic = {1: 'a', 2:'b', 3:'c'}for a in dic:   # 直接循环字典.拿到的是key    print(a)       #1 2 3    key    print(dic[a])   #a b c     value

 

转载于:https://www.cnblogs.com/mwj-blog1/p/9274213.html

你可能感兴趣的文章
iOS开发系统类功能划分
查看>>
知道IP地址的情况下,如何查看主机名
查看>>
SQL执行过程
查看>>
Puppet批量部署tomcat
查看>>
OSPF与Loopback地址
查看>>
mysql的sql执行计划详解
查看>>
Cacti 0.8.8b 配置spine
查看>>
ppt免费模板下载
查看>>
有关字符串中的函数及其部分面试题
查看>>
试用分区助手心得
查看>>
IP地址被恶意域名解析
查看>>
完美安装centos7编译安装php5.6.40(亲测成功!)
查看>>
CentOS7基于虚拟用户的vsfptd
查看>>
[1]supervisor的使用管理:实现对异常中断的子进程的自动重启(以tomcat为例)
查看>>
关于配置Radius认证服务器的思路与配置方法
查看>>
一张表格让编程语言的选择不再迷茫无措
查看>>
CentOS7.5中安装openoffice
查看>>
马哥运维班第四周作业
查看>>
已解决:无法连接到WMI提供程序。你没有权限或者该服务器无访问···
查看>>
Linux -- logrotate 切割 Nginx
查看>>