字典dict的基本用法

小咪咪 2021-11-04 10:18 537阅读 0赞
  1. dict
    1. 用大括号\{\} 括起来. 内部使用key:value的形式来保存数据
    2. \{'jay':'周杰伦', "jj":'林俊杰'\}
    3. 注意:字典的key必须是可哈希的. 不可变的, value 没有限制
    4. 不是按照我们保存的顺序保存的, 无序的
    1. 增删改查
      1. 增:dict[不存在的key] = value, setdefault()

dic = {}

dic[‘name’] = ‘周润发’ # 如果dict中没有出现这个key, 就会新增⼀个key-value的组合进dict

dic[‘age’] = 18

print(dic)

# 如果dict中没有出现过这个key-value. 可以通过setdefault设置默认值

dic.setdefault(‘李嘉诚’) # 也可以往⾥⾯设置值.

dic.setdefault(“李嘉诚”, “房地产”) # 如果dict中已经存在了. 那么setdefault将不会 起作⽤

print(dic)

  1. 2. 删:pop(key). del dict\[key\]. popitem(), clear()
  2. dic = {"牌牌":"你去哪里了", "晓雪":"你快回来.", "雪雪": "又走了"}
  3. ret = dic.pop("晓雪") # 删除一个元素. 返回这个元素的value值
  4. print(ret)
  5. del dic["雪雪"]
  6. print(dic)
  7. ret = dic.popitem() # 返回给你的是一个元组.
  8. print(ret)
  9. 3. 改:dict\[存在的key\] = 新值, d1.update(d2) d2k-v更新到d1
  10. dic = {"id":1, 'name':'李嘉诚', 'money':10000000}
  11. # 李嘉诚赔了500
  12. dic['money'] = dic['money'] - 500 # 用key去修改
  13. print(dic)
  14. dic1 = {"李晨":"范冰冰", "邓超":"孙俪", "王祖蓝":"李亚男"}
  15. dic2 = {"李晨":"张馨予", "郑凯":"baby", "王宝强":"马蓉"}
  16. dic1.update(dic2) # 把dic2中的内容更新到 dic1 , 如果存在了key. 替换. 如果不存在,添加
  17. print(dic1)
  18. print(dic2)
  19. 4. 查:get(key, 默认值), setdefault(), dict\[key\]
  20. dic = {"及时雨":"宋江", "小李广":"花荣", "黑旋风":"李逵", "易大师":"剑圣"}
  21. dic["大宝剑"] = "盖伦" # 新增
  22. dic["及时雨"] = "天老爷" # 修改
  23. print(dic["易大师是个脑残"]) # 查询, 如果key不存在,报错
  24. #get() 1、可以通过key来获取value的值. 那么如果key不存在. 返回None.
  25. # 2、可以给出一个默认值. 当key不存在的时候返回默认值
  26. print(dic.get("易大师")) # 如果key不存在. 返回None
  27. print(dic.get("余小C"))
  28. dic = {"及时雨":"宋江", "易大师":"剑圣"}
  29. dic.setdefault("及时雨", "诺克萨斯") # 可以帮我们添加
  30. print(dic)
  31. ret = dic.setdefault("及时雨123", "hello")
  32. print(ret)
  33. print(dic)
  34. # 1. 首先判断原来的字典中有没有这个key . 如果没有. 执行新增
  35. # 2. 用这个key去字典中查询, 返回查到的结果
  36. dic = {"及时雨":"宋江", "易大师":"剑圣"}
  37. ret = dic.setdefault("西门庆")
  38. print(dic)
  39. print(ret)
  40. 3. 字典的常用方法
  41. 1. keys() 返回所有字典的key的集合(高仿列表)
  42. 2. values() 返回所有的value的集合
  43. 3. items() 返回键值对. 元组
  44. dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科⽐"}
  45. print(dic.keys())
  46. for i in dic.keys():
  47. print(i)
  48. print(dic.values())
  49. for i in dic.values():
  50. print(i)
  51. print(dic.items())
  52. for i in dic.items(): #返回得是("key","value")的多个元组
  53. print(i)
  54. for key,value in dic.items(): #返回的是多组两个字符串组成的数据
  55. print(key,value)
  56. 解构:
  57. a, b = (1, 2)
  58. a, b = 1, 2
  59. print(a, b)
  60. (c, d) = 3, 4
  61. print(c, d)
  62. e, f = [1, 2, 3] # 解构的时候注意数量必须匹配
  63. print(e, f)
  64. 3、字典的嵌套
  65. dic1 = {
  66. "name": "汪峰",
  67. "age": 18,
  68. "wife": {
  69. "name": '章⼦怡',
  70. "age": 28
  71. },
  72. "children": ['第⼀个⽑孩⼦', '第⼆个⽑孩⼦'],
  73. "desc": '峰哥不会告我吧. 没关系. 我想上头条的'
  74. }
  75. print(dic1.get("wife").get("name"))
  76. print(dic1.get("children"))
  77. print(dic1.get("children")[1])

作业:

dic1 = {

  1. 'name':\['alex',2,3,5\],
  2. 'job':'teacher',
  3. 'oldboy':\{
  4. 'alex':\['python1','python2',100\]
  5. \}

}

1,将name对应的列表追加⼀个元素’wusir’。

  1. dic1["name"].append("wusir")
  2. print(dic1)

2,将name对应的列表中的alex⾸字⺟⼤写。

  1. dic1["name"][0]=dic1["name"][0].capitalize()
  2. print(dic1)

3,oldboy对应的字典加⼀个键值对’⽼男孩’,’linux’。

  1. 法一:
  2. dic1["oldboy"].setdefault("老男孩","linux")
  3. print(dic1)
  4. 法二:
  5. dic1["oldboy"]["老男孩"]="linux"
  6. print(dic1)

4,将oldboy对应的字典中的alex对应的列表中的python2删除。

  1. # 法一:
  2. del dic1["oldboy"]["alex"][1]
  3. print(dic1)
  4. # 法二:
  5. dic1["oldboy"]["alex"].pop(1)
  6. print(dic1)
  7. # 法三:
  8. dic1["oldboy"]["alex"].remove("python2")
  9. print(dic1)

作业:

  1. 有以下字符串,k:1|k1:2|k2:3|k3:4现将字符串转换成形式如{"k":1,"k1":2,"k2":3,"k3":4}的字典形式
  2. # 法一:
  3. dic={}
  4. s="k:1|k1:2|k2:3|k3:4"
  5. a=s.split("|")
  6. for i in a:
  7. b=i.split(":")
  8. dic[b[0]]=b[1]
  9. print(dic)
  10. # 法二:
  11. dic={}
  12. s="k:1|k1:2|k2:3|k3:4"
  13. a=s.split("|")
  14. for i in a:
  15. k,v=i.split(":")
  16. dic[k]=v
  17. print(dic)

将li=[11,22,33,44,55,66,77,88,99,90]中的大于66的数字存于字典的”k1”键中,其余的数字存于”k2”中

  1. # 法一:
  2. dic={"k1":[],"k2":[]}
  3. li=[11,22,33,44,55,66,77,88,99,90]
  4. for i in li:
  5. if i>66:
  6. dic["k1"].append(i)
  7. else:
  8. dic["k2"].append(i)
  9. print(dic)
  10. # 法二:
  11. dic={}
  12. li=[11,22,33,44,55,66,77,88,99,90]
  13. for i in li:
  14. if i > 66:
  15. dic.setdefault("k1",[]).append(i) # 1、新增 2、查询
  16. else:
  17. dic.setdefault("k2",[]).append(i) # 1、新增 2、查询
  18. print(dic)输出商品列表,用户输入商品序号,显示用户选中的商品
  19. 商品列表
  20. goods=[{"name":"电脑","price":1999},
  21. {"name":"鼠标","price":10},
  22. {"name":"游艇","price":20},
  23. {"name":"美女","price":998},]
  24. # 页面显示序号+商品+商品价格,用户输入选择的商品序号,然后打印商品名称和商品价格,如果用户输入有误,请提示重新输入,如果用户输入Q或者q时,程序退出
  25. while True:
  26. num=input("请输入你所要看商品的序号,不需要时请按‘Q’结束:")
  27. if num.upper() == "Q":
  28. break
  29. elif int(num) >4:
  30. print("请重新输入数字1-4")
  31. continue
  32. else:
  33. print(int(num),goods[int(num)-1]["name"],goods[int(num)-1]["price"])

发表评论

表情:
评论列表 (有 0 条评论,537人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python中字典dict

    dict的作用 方便查询,例如根据姓名查询一个公司的几千人中的某一人的信息,用列表的话,要遍历查询,麻烦。而在Python中,完全可以利用dict更好的解决此类问题。

    相关 字典(dict)

    字典创建 赋值创建字典 通过工厂函数创建字典 通过字典的 fromkeys 方法创建字典 赋值创建字典 , key-value , 键值对 ![