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]) # 熊二

  • 相关阅读:
    JAVA多线程理论!
    JAVA理论!
    对于PHP的基础理论!
    C#中的ArrayList
    C#中HashTable的用法
    用C#写经理评分系统
    C#数据类型
    jQuery小测的总结
    用jQuery模拟淘宝购物车
    JavaScript--------------------jQuery中.bind() .live() .delegate() .on()的区别 和 三种方式写光棒事件 动画
  • 原文地址:https://www.cnblogs.com/liwenhu/p/11401211.html
Copyright © 2011-2022 走看看