zoukankan      html  css  js  c++  java
  • day05

    1. 字典

    1.1 定义 {键:值} 大括号 键 冒号 值

    • 以{ }括起来的键值对组成
    • 字典是无序的,可变的数据类型
    • 用于存数数据,字典比列表快,将数据和数据之间进行关联

    1.1.1 字典的键

    • 可哈希的--不可变的数据类型,避免哈希冲突使用了 开放寻址法

    • 要求唯一 如果有重复的键后边值的将前面的值覆盖

    • 可以是:int, str, tuple, bool.

    • 不可为**list . dict. set (不可哈希的)

    • dic = {"大黑哥":[1,2,3],"大黑哥":89}
      print(dic)  
      结果:
      {'大黑哥': 89}  如果键相同,则后边的将前边的覆盖
      

    1.1.2 字典的值

    • 可以任意

    1.2 字典的增

    1.2.1 暴力添加,有键则改,没键则添加到末尾

    dic = {"大黑哥":[1,2,3],"李文虎":89}
    
    dic["大黑哥"] = 99  #暴力添加,有键则改,没键则添加到末尾
    print(dic)     #{'大黑哥': 99, '李文虎': 89}
    
    dic["韩信"] = ["中国"]
    print(dic)     #{'大黑哥': 99, '李文虎': 89, '韩信': ['中国']}
    

    1.2.2 dic.setdefault 有键则保持不变,没键则添加到末尾,只添加键,则打印返回值

    dic = {"大黑哥":[1,2,3],"李文虎":89}
    
    dic.setdefault("大黑哥",100) #"大黑哥"在字典中出现,故不添加
    print(dic)   #{'大黑哥': [1, 2, 3], '李文虎': 89}
    
    dic.setdefault("韩星")
    print(dic)     #结果: {'大黑哥': [1, 2, 3], '李文虎': 89, '韩星': None}
    print(dic.setdefault("韩星"))   #结果: None
    
    dic.setdefault("韩星","中国")  #添加的键和值用**逗号**隔开
    print(dic)    #结果: {'大黑哥': [1, 2, 3], '李文虎': 89, '韩星': '中国'}
    

    1.3 字典的删

    1.3.1 通过键删除键值对

    1.3.1 del 空格 dic(键) 一次只能删除一个

    1.3.1 由于dic是无序的,不可通过索引删除

    dic = {"大黑哥":[1,2,3],"李文虎":89}
    del dic["李文虎"]
    print(dic)
    结果:
    {"大黑哥":[1,2,3]}
    
    dic = {"大黑哥":[1,2,3],"李文虎":89}
    del dic["大黑哥","李文虎"]
    print(dic)
    结果:
    报错
    
    dic = {"大黑哥":[1,2,3],"李文虎":89}
    del dic
    print(dic)   #结果:报错,全删了,未定义dic
    
    lst = ["大黑哥",[1,2,3],"李文虎",89]
    del lst
    print(lst)   #结果:报错,全删了,未定义lst
    

    1.3.2 python3.6以上默认删除最后一个

    dic = {"大黑哥":[1,2,3],"李文虎":89}
    dic.popitem()   #python3.6 默认删除最后一个
    print(dic)    #结果: {'大黑哥': [1, 2, 3]}
    
    dic.popitem()  #结果: ('李文虎', 89)   #返回值是元组
    

    1.3.3 清空

    dic = {"大黑哥":[1,2,3],"李文虎":89}
    dic.clear()
    print(dic)   #结果:  {}
    
    print(dic.clear())   #结果:None  
    
    

    1.3.4 pop() 删除

    dic = {2:("你好"),"北京":"中国","石家庄":"河北"}
    dic.pop("北京")  #通过字典的键进行删除键值对
    print(dic)    # 结果 {2: '你好', '石家庄': '河北'}  
    
    print(dic.pop("北京"))   #结果:中国  #返回值:返回的是被删除的值
    

    1.4 字典的改

    1.4.1 当update中的字典里没有dic中键值对就添加到dic字典尾部,如果有就修改里边的对应的值

    dic = {2:"你好","北京":"中国","石家庄":"河北"}
    dic1 = {"大黑哥":[88],"老黑哥":66,"北京":"首都"}
    
    dic1.update(dic)
    print(dic)  #{2: '你好', '北京': '中国', '石家庄': '河北'}
    print(dic1)   
    #结果: {'大黑哥': [88], '老黑哥': 66, '北京': '中国', 2: '你好', '石家庄': '河北'}  #("首都"变"中国")
    
    dic.update(dic1)
    print(dic1)   #{'大黑哥': [88], '老黑哥': 66, '北京': '首都'}
    print(dic)   
    #结果: {2: '你好', '北京': '首都', '石家庄': '河北', '大黑哥': [88], '老黑哥': 66}  #("中国"变"首都")
    
    #  update括号中的字典级别高于update前面的字典
    

    1.4.2 dic[键] = 键 的修改方法

    # dic["常鑫"] = "dsb"   # 字典中没有某个键值对的时候就是添加,当键在字典中存在的时候就是修改
    # print(dic)            #有则改 无则加
    

    1.5字典的查

    1.5.1 循环打印字典的键

    dic = {"大黑":(666),"小黑":[888],"老黑":True}
    for i in dic:
    	print(i)
    结果:
    大黑
    小黑
    老黑
    

    1.5.2 循环打印字典的值 dic.get()

    dic = {"大黑":(666),"小黑":[888],"老黑":True}
    for i in dic:
        dic.get(i)
        print(dic.get(i))
    结果:
    666    #数字
    [888]  #列表
    True   #布尔值
    

    1.5.3 循环打印字典的键和值

    dic = {"大黑":(666),"小黑":[888],"老黑":True}
    for i in dic:
        dic.get(i)
        print(i,dic.get(i))
     结果:
    大黑 666
    小黑 [888]
    老黑 True
    

    dic.setdefault

  • 相关阅读:
    Neko's loop HDU-6444(网络赛1007)
    Parameters
    SETLOCAL
    RD / RMDIR Command
    devenv 命令用法
    Cannot determine the location of the VS Common Tools folder.
    'DEVENV' is not recognized as an internal or external command,
    How to change Visual Studio default environment setting
    error signing assembly unknown error
    What is the Xcopy Command?:
  • 原文地址:https://www.cnblogs.com/lvweihe/p/11166814.html
Copyright © 2011-2022 走看看