目录

字典——dict { }

字典是无序,可变的数据类型。

字典:用于存储数据,存储大量数据,字典要比列表快;将数据和数据之间进行关联。

  1. 定义:
    dic = {键:值,键:值} #每个 键值对 以逗号分隔成一个元素

字典的值: 可以是任意的数据类型。

字典的键:必须是可哈希的——不可改变的数据类型;要求键唯一,如果有重复的,则后面的值会把前面的值覆盖掉。

(注:可哈希的 -- 不可变的数据类型(数字、字符串、布尔值) -- 避免哈希冲突使用了 “开放寻址法” )

(不可哈希的 -- 可变的数据类型 (列表、字典) )

  1. 增:
    dic = {"a":10,"b":20,"c":30}

    dic["键"] = 值 # 暴力添加
    dic["d"] = 40

    dic.setdefault(键,值) # 通过键去字典中查询,如果键不存在执行添加,如果键存在则不会添加
    dic.setdefault("c",40) # "c" 存在,不添加
    dic.setdefault("f",40) # "f"不存在,添加到字典

  2. 删:
    del dic["a"] # 通过字典的键,删除键值对
    dic.pop("b") # 通过字典的键,删除键值对,有返回值,返回的是被删除的值
    dic.clear() # 清空字典

  3. 改:
    dic["b"] = 200 #字典中没有此键值对的时候就是添加,当键在字典中存在的时候就是修改 # "有则改,无则加"
    dic.update(dic1) # 更新,里面必须放字典。update括号中的字典(dic1)级别高于前面的字典(dic)
    # 运行:先将具有相同键的内容覆盖,再在字典末尾添加dic没有的键值对

  4. 查:
    for i in dic:
    print(i) # for 循环获取的是键值对的键

    dic.get(键) # 通过键获取值,如果键不存在字典中会返回 None
    dic[键] # 通过键获取值,如果键不存在字典中会报错!

  5. 其他操作:
    dic = {"a":1,"b":2,"c":3}

    # 1.
    for i in dic:
    print(i,dic.get(i)) # 循环输出所有的键和值 a 1 b 2 c 3

    # 2. keys() 所有的键
    print(dic.keys()) # 高仿列表,获取的是字典中所有的键 -- dict_keys(['a', 'b', 'c']) 支持for循环 不支持索引

    for i in dic.keys():
    print(i) # 循环输出所有的键 a b c

print(dic.keys()[0]) # 报错 'dict_keys' object does not support indexing(不支持索引)

# 3. values() 所有的值
print(dic.values()) # 高仿列表,获取的是字典中所有的值 ——dict_values([1, 2, 3])
print(list(dic.values())) # 获取的是字典中所有的值,转换成 真的列表

# 4. items() 所有的键和值
print(dic.items()) # 高仿列表,获取的是字典中所有的键和值,存放在元组中 ——dict_items([('a', 1), ('b', 2), ('c', 3)])

for i in dic.items():
print(i[0],i[1]) #将键和值从元组中循环打印出 a 1 b 2 c 3

# 5. 将字典中的值放到列表中
lst = []
for i in dic:
lst.append(dic[i])
print(lst)

  1. 解构:
    a = 10
    b = 20
    a,b = b,a
    print(a,b) # 实现a,b数字的交换,列表、元组都可以

    a,_,b = (3,4,5)
    print(a,b) # 3 5 等号后边的值和前面的变量名要一一对应(假如只要a,b)

    a = 10,12 # 本质就是一个元组
    print(a) # (10,12)

    a,b = "23"
    print(a,b) # 2 3

    a,b = {"1":"a","2":"b"}
    print(a,b) #输出 1 2(键)

    for i in dic.items():
    print(i) # 获取的是每个元素,结果:(键,值)

for k,v in dic.items():
print(k,v) # 获取每个元素的键和值

  1. 字典的嵌套:

查找的时候一次一次的通过键查找。

dic[键]
dic = {1001:["周杰伦","林俊杰"],
1002:{"汪峰":{"前妻1":["大烧饼"],"前妻2":["熊大","熊二"],"国际章":"肉丝"}}}
print(dic[1002]["汪峰"]["前妻2"][1]) # 熊二

python中的{字典}的更多相关文章

  1. 如何将xml转为python中的字典

    如何将xml转为python中的字典 import cElementTree as ElementTree class XmlListConfig(list): def __init__(self, ...

  2. Python中的字典与集合

    今天我们来讲一讲python中的字典与集合 Dictionary:字典 Set:集合 字典的语法: Dictionary字典(键值对) 语法: dictionary = {key:value,key: ...

  3. 13.python中的字典

    字典其实和之前的元祖和列表功能相似,都是用来储存一系列对象的.也就是一种可变容器,或者是我所比喻的革新派的菜单. 但也不是完全相同,我在之前曾经将字典称为特殊的'序列',是字典拥有序列的部分特性,但是 ...

  4. python中的字典(dict),列表(list),元组(tuple)

    一,List:列表 python内置的一种数据类型是列表:list.list是一种有序的数据集合,可以随意的添加和删除其中的数据.比如列出班里所有的同学的名字,列出所有工厂员工的工号等都是可以用到列表 ...

  5. python中 字符 字典 列表之间的转换

    1 字典 转 字符 定义一个字典:dict = {'name': 'python', 'age': 7}字典转字符 可以使用str强制转换 如: str(dict) 此时dict的类型就是字符型了 2 ...

  6. Python中字符串/字典/json之间的转换

    import json #定义一个字典d1,字典是无序的 d1 = { "a": None, "b": False, "c": True, ...

  7. python中的字典 和 集合

    python中字典是一种key-value的数据类型 字典的特性: 1.无序的 2.key必须的唯一的,so,字典天生去重 语法: 增加 修改 删除 查找 多级字典嵌套及操作 字典的其他用法 #set ...

  8. python中的字典内置方法小结

    #!/usr/local/bin/python3 # -*- coding:utf-8 -*- #key-value #dict 无序,无下标,不需要下标,因为有key stu={ 'stu001': ...

  9. python学习之【第六篇】:Python中的字典及其所具有的方法

    1.前言 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,因此,字典的key必须是可哈 ...

  10. Python中的字典和集合

    一.字典(dict)      1. 概述          字典是Python唯一的映射类型. 只能使用不可变的对象(比如字符串)来作为字典的键,但是可以把不可变或可变的对象作为字典的值. 键值对在 ...

随机推荐

  1. Mapbox矢量瓦片标准(mapbox vector-tile-spec)

    目录 1. 目标 2. 文件格式 2.1. 文件后缀 2.2 MIME类型 3. 投影和范围 4. 内部结构 4.1. 图层 4.2. 要素 4.3. 几何图形编码 4.4. 要素属性 4.5. 示例 ...

  2. django注释

    转自https://www.cnblogs.com/dayouzi/p/10154815.html Django在HTML里面书写的模板语言不能使用这种方法注释,这样注释实际依然有效 <!--{ ...

  3. SQLServer查看及设置最大连接数(转)

    转自:https://blog.csdn.net/duanbeibei/article/details/86573840 很多时候自己本地开发会遇到 ,打开几个连接正常访问 之后就报错误,这时候需要调 ...

  4. Xcodebuild稳定性测试go脚本

    [本文出自天外归云的博客园] 简单封装下xcodebuild test命令,写一个执行xcode测试的go程序,可以设定单case执行次数,也可以二次组装调用进行多个case的测试,代码如下: pac ...

  5. Android Studio 3.0——unable to resolve dependency for cordovalib

    Android Studio 3.0 更新了gradle后,项目竟然开始报错unable to resolve dependency for cordovalib...打开build.gradle看了 ...

  6. requests库学习案例

    requests库使用流程 使用流程/编码流程 1.指定url 2.基于requests模块发起请求 3.获取响应对象中的数据值 4.持久化存储 分析案例 需求:爬取搜狗首页的页面数据 # 爬取搜狗首 ...

  7. coding git push 403 时

    直接修改 项目目录下的 .git/config   url url = https://coding用户名:coding密码@git.coding.net/coding账号/coding项目名称.gi ...

  8. Jsp编写的页面如何适应手机浏览器页面

    经常遇到JSP网页需要适配手机设备的尺寸问题 解决: 在JSP加入<meta name="viewport" content="width=device-width ...

  9. Juju solutions for OpenStack

    Juju solutions for OpenStack Juju makes it easy to deploy OpenStack at scale. Quickly and reliably b ...

  10. [教程]Tensorflow + win10 + CPU + Python3.6+ 安装教程

    由于各种原因,清华镜像源已经彻底挂掉了,但是目前网上的各种教程基本上都是采取设置清华镜像源来加快下载速度,所以这给小白带来了很大的困扰!这里我将通过合理上网工具来直接下载源镜像. 注意:本次教程适用于 ...