• Python自娱—8.字典


    字典是可变数据类型

    字典是python中唯一映射数据类型

    字典的特点是查询效率高;存储大量的关系型数据

    通过Key查找value,内部使用Key来计算一个内存地址

    key是不可变数据类型 元组、bool、int、str

    python3.5以前字典是无序的

     

    创建字典方式以及zip

    information_dic = {"name": "wg", "age": 33}
    information_dic = dict([("name", "wg"), ("age", 33)])
    information_dic = dict("name"=”wg“, age=33)
    information_dic = dict(zip(lis1, lis2))
    

     

    字典的增删改查

    information_dic["high"] = 185                   # 有key修改value,没有增加
    information_dic.setdefault("weight", 122)       # 有key不修改value,没有增加
    information_dic.update(information1)            # 有key修改value,没有增加
    information_dic = {键: 值,}
    
    information_dic.get(key)                        # 是否有键,没有返回none;括号中可以设置0,返回0
    information_dic.setdefault("键")                # 没有返回None
    information_dic["键"]                           # 没有就报错
    information_dic.keys()                          # 查键,返回列表
    information_dic.values()                        # 查值,返回列表
    informaiton_dic.items()                         # 查键值对,返回元组
    for i in information (.keys,.values,.items)     # 什么都不加返回键
    
    information_dic.pop(key, 设置返回值)              # 可以测试是否有键
    information_dic.popitem()                       # 随机删;3.6以后默认删最后一个;返回键值对元组
    del information_dic[key]
    information.clear()                             # 清空
    

     

    关于fromkeys的坑

    information_dic = dict.fromkeys()     # 新字典通过第1个参数迭代做k,第2个参数做值
        dict.fromkeys([], "")
    # 只改变一个值
    information_dic[key] = ""
    # 全改变
    dict.fromkeys([], [])
    information_dic[].append("")          # 所有键值对的id一样
    # 这里我们说是受是否可变数据类型影响应该
    

     

    解构和解包

    a, b = 10, 20 == (10, 20) == [10, 20]     # 元组和列表都有这功能
    for item in dic.items():
        k,v = item
        print(k)
        print(v)
    #json长的就是字典样式
    

     

    字典推导式

    dic1 = {dic[k]: k for k in dic}
    
    dic = {"a": 1, "b": 2, "A": 3, "D": 4}
    # dic1 = {}
    # for k in dic:
    #     # dic1[k.lower()] = dic.get(k.upper(), 0) + dic.get(k.lower(), 0)
    #     dic1.setdefault(k.lower(), dic.get(k.upper(), 0) + dic.get(k.lower(), 0))
    # print(dic1)
    dic2 = {k.lower(): dic.get(k.upper(), 0) + dic.get(k.lower(), 0) for k in dic}
    print(dic2)
    

     

    提取单一元素字典

    - key,value的方法
    
    # d = {'name':'haohao'}
    # (k, v), = d.items()
    # print(k)
    #
    # d = {'name':'haohao'}
    # k = list(d)[0]
    # v = list(d.values())[0]
    # print(k)
    #
    # d = {'name':'haohao'}
    # k, = d
    # v, = d.values()
    # print(k)
    
  • 相关阅读:
    Zookeeper:Windows下Zookeeper启动zkServer.cmd闪退问题
    单元测试:单元测试多模块项目不同模块组件不能@autowired问题
    SpringBoot:springBoot注解大全
    单元测试:Junit基本注解@BeforeClass、@AfterClass、@Before、@After、@Test、
    知识点:日志打印@Slf4j 注解的使用方法
    单元测试:@FixMethodOrder注解指定测试方法的执行顺序
    资源:zookeeper下载地址
    资源:HTML调色板
    其他:《后端架构师技术图谱》
    Linux:从windows到linux的shell脚本编码和格式
  • 原文地址:https://www.cnblogs.com/FGdeHB/p/15827851.html
Copyright © 2020-2023  润新知