zoukankan      html  css  js  c++  java
  • 2018年11月24日 周末学习1 字典2

    info={
          "k1":12,
          "k2":True,
          "k3":[11,"sxj",],
          "k4":"abc",
          }
    v1=info["k1"] #输入key值 得出value值
    print ("1.字典的索引:",v1) #字典的索引
    v2=info["k3"][1]
    print("2.索引用法如何寻找sxj:",v2)#通过索引一层层寻找
    
    #VIP:因为字典是无序的,所以不能切片
    
    del info["k2"]
    print("3.k2键值对删除:",info)#字典支持删除
    
    for item in info:
        print("4.for循环的应用:",item) #默认循环的是key
    for item in info.keys():
        print("5.字典获取key:",item,info[item])
    for item in info.values():
        print("6.字典value值获得:",item)
    for item in info.items():
        print("7.循环获得键值对items:",item)
    for k,v in info.items():
        print("8.循环分别获得key与value用法:",k,v

     

    如果key值有重复,例如 True和1 例如  都是"K1“,后面的value会替代前面的,并且只显示一个key值

    info={
        "k1":122,
        1:"222",
        "123":2,
        True:"abc"# True与1重复 注意value值的传递
          }
    
    print (info)
    
    a=dict.fromkeys("abc","123")
    b=dict.fromkeys(["a",1,True],["sxj",2,4])
    c=dict.fromkeys(("sxj",2,4),"abc")
    print("1.根据序列或者字符串或者元祖创建字典,并指定统一的值:"'
    ',a,'
    ',b,'
    ',c)
    d=a.get("ABC","k不存在则返回默认值")
    e=b.get("a")# 根据key值去取值,get不会更改原来a字典内的数据
    print("2.get高级索引的用法,普通索引不到会报错,该方法不会:",d,e)
    f=c.pop("sxj","默认值,如果没得删除就返回该默认值")
    g=c.pop("aaaa","默认值")
    print("3.pop删除的用法",f,'
    ',c,'
    ',g)
    h=a.popitem()#随机删除键值对并返回该删除的内容
    print("4.popitem 用法,随机删除键值对并返回删除内容:",h,'
    ',a)
    
    a2=a.copy()
    i=a.setdefault("sxj","默认值1")
    j=a2.setdefault("a","默认值2")
    print("5.setdefault设置值,如果已经存在就不设置但是返回当前key对应值,如果不存在就返回默认值:",'
    ',a,'
    ',i,'
    ',a2,'
    ',j)
    a3=a.copy()
    a4=a.copy()
    a3.update({"k1":"如果没有则在后面添加","b":"如果原来有就替换"})
    #update更新的用法
    a4.update(a="更新1",c="没有就添加")
    print("6.update用法注意参数:
    ",a3,'
    ',a4)

    如果参数内部写成**kwargs,则默认会转换成字典,可以写成 例如name=“sss”,age=18 也可以写成字典形式 传递参数

    t="I am {name},age:{age}"
    v=t.format(name="sxj",age=18)
    print(v)
    w=t.format(**{"name":"sxj","age":18})
    print(w)
    #前面需要加** 否则报错 
    a= 'a' in info #判断是否在key值
    b="c" in info.values()#判断是否在value值内
    print(a,b)
    #none;"";();[];{};0 ==》 这些都是Falue,其他都是True
    a=bool({})
    print(a)
     


  • 相关阅读:
    新一代MQ apache pulsar的架构与核心概念
    Flutter使用fluwx实现微信分享
    BZOJ3622 已经没有什么好害怕的了 动态规划 容斥原理 组合数学
    NOIP2016提高组Day1T2 天天爱跑步 树链剖分 LCA 倍增 差分
    Codeforces 555C Case of Chocolate 其他
    NOIP2017提高组Day2T3 列队 洛谷P3960 线段树
    NOIP2017提高组Day2T2 宝藏 洛谷P3959 状压dp
    NOIP2017提高组Day1T3 逛公园 洛谷P3953 Tarjan 强连通缩点 SPFA 动态规划 最短路 拓扑序
    Codeforces 873F Forbidden Indices 字符串 SAM/(SA+单调栈)
    Codeforces 873E Awards For Contestants ST表
  • 原文地址:https://www.cnblogs.com/python1988/p/10012083.html
Copyright © 2011-2022 走看看