zoukankan      html  css  js  c++  java
  • 稍微比较全的那种字典

    字典

    无序的

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

    lst=["刘德华","张学友","林俊杰","胡歌"]
    lst2=["帅","酷","厉害","好"]
    print(lst[0]+lst[0])
    结果
    刘德华 帅
    

    定义一个字典:

    dic={"宋佳":男,"分数":80,"性格":"爱笑"}
    字典中每一个逗号分割叫一个元素"宋佳”是一个键:男是一个值--键值对
    dic={"宋佳":"男","分数":80,"性格":"爱笑"}
    print(dic)
    结果
    {'宋佳': '男', '分数': 80, '性格': '爱笑'}
    

    字典的键:

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

    不可哈希的--可变的数据类型

    字典的值可以任意,字典的键要求唯一 如果有重复后面的值将会覆盖前面的值 字典是可变的类型数据 可以修改

    1. 暴力添加

      2.setdefault

    dic={"宋佳":"男","分数":80,"性格":"爱笑"}
    1.暴力添加
    dic["喜好"]="唱跳"
    print(dic)
    结果
    {"宋佳":"男","分数":80,"性格":"爱笑","喜好":"唱跳"}
    ##  dic[键]=[值]
    
    2.setdefault
    dic.setdefault("喜好","唱跳")
                     键    值
    这个键去字典查询,如果不存在 就添加 ;存在 就不添加
    

    1. del通过字典键 删除键值对
    2. pop 通过字典的键 删除键值对 返回值:返回的是被删除的值
    3. clear 清空 清空字典
    dic={"宋佳":"男","分数":80,"性格":"爱笑"}
    del.dic["喜好"]  #删除键 删除键值对
    
    
    dic={"宋佳":"男","分数":80,"性格":"爱笑"}
    dic.pop("分数")  #删除键 达到删除键值对效果
    
    
    dic={"宋佳":"男","分数":80,"性格":"爱笑"}
    dic.clear()  #清空列表
    
    

    dic={"宋佳":"男","分数":80,"性格":"爱笑"}
    dic["分数"]=60
    #  字典中没有某个键值的时候就是添加 当键在字典中存在就是修改
    有则改 无则加
    
    update: 更新
    dic={"宋佳":"男","分数":80,"性格":"爱笑"}
    dic.update(dic)
    # uodate括号中的字典级别高于update前面的字典
    
    

    dic={"宋佳":"男","分数":80,"性格":"爱笑"}
    for i in dic
    	print(i)
        # 循环获取的是字典中每个键值对的键
        
    get
    print(dic.get("宋佳"))
    #  通过键获取值 ,如果不存在字典中返回None 不存在就会报错
    存在就是显示
    

    其他操作:

    dic={"宋佳":"男","分数":80,"性格":"爱笑"}
    print(dic.keys())  #高仿列表--dict keys(['宋佳'分数','性格'])   获取的是键
    print(dic.values()) 获取的是键
    
    for i in dic:
        print(i)  #获取的是键
        print(i,dic.get(i))# 获取所有键和值
        
        ## 高仿列表支持for循环 不支持索引 :
        for i in dic.keys():
            print(i)
            print(i,dic.get(i))
    print(del.keys()[0])
    #vluse获取字典所有的值  keys获取所有键  items获取的是键和值
    
    print(dic.items())
    

    解构

    a,b=10,20
    a,b=b,a
    print(a,b)
    结果
    a=20
    b=10
    a,_,b=(3,4,5)
    print(a,b)
    a=3
    b=5  #等号后面的值和前面的变量名要一一对应
    a=10,12 #本质就是一个元组
    print(a)
    (10,12)
    
    a,b={1:"a",2:"b"}
    print(a,b)
    1 2 
    
    a,b="23"
    print(a,b)
    2 3 
    ###
    keys--获取字典中所有的键 存放在一个高仿列表中
    values--获取字典中所有的值  存放在一个高仿列表中
    items --获取字典中所有的键和值 存放在一个高仿列表里的元祖
    
    #!!!获取每个元素的键和值
    for k,v in dic.items():
        print(k,v)
    
    ```不可变数据类型/可变数据类型
    数据类型	可变/不可变
    整型	不可变
    字符串	不可变
    元组	不可变
    列表	可变
    集合	可变
    字典	可变
  • 相关阅读:
    hdu 5387 Clock (模拟)
    CodeForces 300B Coach (并查集)
    hdu 3342 Legal or Not(拓扑排序)
    hdu 3853 LOOPS(概率DP)
    hdu 3076 ssworld VS DDD(概率dp)
    csu 1120 病毒(LICS 最长公共上升子序列)
    csu 1110 RMQ with Shifts (线段树单点更新)
    poj 1458 Common Subsequence(最大公共子序列)
    poj 2456 Aggressive cows (二分)
    HDU 1869 六度分离(floyd)
  • 原文地址:https://www.cnblogs.com/sjf981012-/p/11164879.html
Copyright © 2011-2022 走看看