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

  • 相关阅读:
    JS数组存储(两个数组相等,一个改变,另一个跟着改变)
    图片404加载失败后如何处理
    为什么重写equals方法,还必须要重写hashcode方法
    Java中HashMap和TreeMap的区别深入理解
    java中String数组和List的互相转化
    log4j重复打印的解决方法
    mysql 允许在唯一索引的字段中出现多个null值
    elasticsearch 常见查询及聚合的JAVA API
    A记录(主机名解析)、CNAME(别名解析)和URL转发(域名转发)
    域名解析中的cname解析和显性URL跳转和隐性URL跳转三者有什么区别
  • 原文地址:https://www.cnblogs.com/lvweihe/p/11166814.html
Copyright © 2011-2022 走看看