zoukankan      html  css  js  c++  java
  • python notice3

    字典:字典(dict)是python中唯一的一个映射类型.他是以{ }括起来的键值对组成. 在dict中key是唯一的. 在保存的时候, 根据key来计算出一个内存地址. 然后将key-value保存在这个地址中.这种算法被称为hash算法, 所以, 切记, 在dict中存储的key-value中的key必须是可hash的,同时在一个字典中键是唯一的。目前可哈希的数据类型:int、str、tuple、bool。不可哈希的数据类型:list、dict、set。

      语法:{key1: value1, key2: value2....}    注:键值对是无序的,故不可以进行切片操作。

    1.增

      dict[key] = value  如果key不存在,就会新增一个键值对;如果key存在,就会替换对应的value。

      dict.setdefault(key,value)  如果key不存在,会增加一个键值对;如果key存在,setdefault不会起作用。

    2.删

      dict.pop(key)  删除指定的key-value,同时返回对应的value

      del dict[key]  删除指定的key-value

      dict.popitem()  随机删除key-value,同时返回key-value。

      dict.clear()   清空字典内容

    3.改

      dict[存在的key] = 新值,

      d1.update(d2)   把d2中的内容更更新到d1中. 如果key重名. 则修改替换. 如果不存在key, 则新增.

    4.查

      dict[key]  可以直接查,若key不存在,会报错。

      dict.get(key)   直接查,若key不存在,返回None,或者dict.get(key,返回值),设定返回值。

      dict.setdefault(key,value)  如果key不存在,会增加一个键值对,同时返回对应的值;如果key存在,返回本身存在的value。

    5.其他相关操作

      dict.keys()  获取到字典所有的key,然后存在一个高仿的列表中,可以用for循环遍历

      dict.values()  获取到字典所有的value,然后存在一个高仿的列表中

      dict.items()  获取到字典所有的键值对,然后以元组的形式存在一个高仿的列表中

        解构解包  a, b = 1, 2; a, b = (1, 2);a, b = [1, 2]  循环遍历元组等时更方便

    6.字典的嵌套

     eg:dic1 = {
        "name": "小明",
        "age": 28,
        "wife": {
          "name": '小红',
          "age": 28
           },
        "children": ['第⼀个毛孩', '第⼆个⽑孩'],
          }
      print(dic1.get("wife").get("name"))

      print(dic1.get("children"))
      print(dic1.get("children")[1])

     7.==和is的区别

      ==  比较两边变量的值是否相等

      is   比较两边变量的内存地址是否相等  注:查询变量地址print(id(变量))

      补充is使用时地址:   

        # 数字小数据池的范围  -5 ~ 256,当数字在这范围内,is两边地址相等

        # 字符串中如果有特殊字符他们的内存地址就不一样

        # 字符串中单个*20以内他们的内存地址一样,单个*21以上内存地址不一致

      注:两者的区别只能在终端执行时才可以对比出来,pycharm不可以,一个py文件中所有相同的字符串一般都是使用一样的内存地址。

    8.编码和解码

      encode(编码方式)     ---- 拿到明文编码后对应的字节

      decode(解码方式)     -----将编码后的字节解码成对应的明文

      注:用什么进行编码就要用什么进行解码 ,否则会出现乱码。

      补充:

        python3中程序运行阶段使用的是Unicode,可以显示所有内容。pycharm存储的时候默认使用utf-8类型。

        数据传输和存储都是使用bytes类型。

      编码知识:
             ascii 码:
                   不支持  中文
                   支持    英文  数字  符号
                   8位      一个字节
             gbk码  国标:
                   支持  中文,英文,数字,符号
                   英文  16位   二个字节
                   中文  16位   二个字节
             unicode  万国码
                    支持  中文,英文,数字,符号
                    英文  32 位  四个字节
                    中文  32位   四个字节
             utf-8   长度可变的万国码 最少用8位
                    英文   8位    一个字节
                    中文   24位   三个字节

      

  • 相关阅读:
    #mxnet# infer_shape ,附 module 中 symbol 提取
    #Ubuntu# boot失败:could not write bytes: broken pipe
    MXNet openblas
    【CodeChef】Turbo Sort
    【HackerRank】Median
    【HackerRank】Coin on the Table
    【HackerRank】Pairs
    【HackerRank】Cut the tree
    【HackerRank】Missing Numbers
    【HackerRank】Closest Numbers
  • 原文地址:https://www.cnblogs.com/xiaolu-fan/p/11150853.html
Copyright © 2011-2022 走看看