zoukankan      html  css  js  c++  java
  • python中的{字典}

    字典——dict { }

    字典是无序,可变的数据类型。

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

    1. 定义:
      dic = {键:值,键:值} #每个 键值对 以逗号分隔成一个元素

    字典的值: 可以是任意的数据类型。

    字典的键:必须是可哈希的——不可改变的数据类型;要求键唯一,如果有重复的,则后面的值会把前面的值覆盖掉。

    (注:可哈希的 -- 不可变的数据类型(数字、字符串、布尔值) -- 避免哈希冲突使用了 “开放寻址法” )

    (不可哈希的 -- 可变的数据类型 (列表、字典) )

    1. 增:
      dic = {"a":10,"b":20,"c":30}

      dic["键"] = 值 # 暴力添加
      dic["d"] = 40

      dic.setdefault(键,值) # 通过键去字典中查询,如果键不存在执行添加,如果键存在则不会添加
      dic.setdefault("c",40) # "c" 存在,不添加
      dic.setdefault("f",40) # "f"不存在,添加到字典

    2. 删:
      del dic["a"] # 通过字典的键,删除键值对
      dic.pop("b") # 通过字典的键,删除键值对,有返回值,返回的是被删除的值
      dic.clear() # 清空字典

    3. 改:
      dic["b"] = 200 #字典中没有此键值对的时候就是添加,当键在字典中存在的时候就是修改 # "有则改,无则加"
      dic.update(dic1) # 更新,里面必须放字典。update括号中的字典(dic1)级别高于前面的字典(dic)
      # 运行:先将具有相同键的内容覆盖,再在字典末尾添加dic没有的键值对

    4. 查:
      for i in dic:
      print(i) # for 循环获取的是键值对的键

      dic.get(键) # 通过键获取值,如果键不存在字典中会返回 None
      dic[键] # 通过键获取值,如果键不存在字典中会报错!

    5. 其他操作:
      dic = {"a":1,"b":2,"c":3}

    1.

    for i in dic:
    print(i,dic.get(i)) # 循环输出所有的键和值 a 1 b 2 c 3

    2. keys() 所有的键

    print(dic.keys()) # 高仿列表,获取的是字典中所有的键 -- dict_keys(['a', 'b', 'c']) 支持for循环 不支持索引

    for i in dic.keys():
    print(i) # 循环输出所有的键 a b c

    print(dic.keys()[0]) # 报错 'dict_keys' object does not support indexing(不支持索引)

    3. values() 所有的值

    print(dic.values()) # 高仿列表,获取的是字典中所有的值 ——dict_values([1, 2, 3])
    print(list(dic.values())) # 获取的是字典中所有的值,转换成 真的列表

    4. items() 所有的键和值

    print(dic.items()) # 高仿列表,获取的是字典中所有的键和值,存放在元组中 ——dict_items([('a', 1), ('b', 2), ('c', 3)])

    for i in dic.items():
    print(i[0],i[1]) #将键和值从元组中循环打印出 a 1 b 2 c 3

    5. 将字典中的值放到列表中

    lst = []
    for i in dic:
    lst.append(dic[i])
    print(lst)

    1. 解构:
      a = 10
      b = 20
      a,b = b,a
      print(a,b) # 实现a,b数字的交换,列表、元组都可以

      a,_,b = (3,4,5)
      print(a,b) # 3 5 等号后边的值和前面的变量名要一一对应(假如只要a,b)

      a = 10,12 # 本质就是一个元组
      print(a) # (10,12)

      a,b = "23"
      print(a,b) # 2 3

      a,b = {"1":"a","2":"b"}
      print(a,b) #输出 1 2(键)

      for i in dic.items():
      print(i) # 获取的是每个元素,结果:(键,值)

    for k,v in dic.items():
    print(k,v) # 获取每个元素的键和值

    1. 字典的嵌套:

    查找的时候一次一次的通过键查找。

    dic[键]
    dic = {1001:["周杰伦","林俊杰"],
    1002:{"汪峰":{"前妻1":["大烧饼"],"前妻2":["熊大","熊二"],"国际章":"肉丝"}}}
    print(dic[1002]["汪峰"]["前妻2"][1]) # 熊二

  • 相关阅读:
    [转发]深入理解git,从研究git目录开始
    iOS系统网络抓包方法
    charles抓包工具
    iOS多线程中performSelector: 和dispatch_time的不同
    IOS Core Animation Advanced Techniques的学习笔记(五)
    IOS Core Animation Advanced Techniques的学习笔记(四)
    IOS Core Animation Advanced Techniques的学习笔记(三)
    IOS Core Animation Advanced Techniques的学习笔记(二)
    IOS Core Animation Advanced Techniques的学习笔记(一)
    VirtualBox复制CentOS后提示Device eth0 does not seem to be present的解决方法
  • 原文地址:https://www.cnblogs.com/liwenhu/p/11401211.html
Copyright © 2011-2022 走看看