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位   三个字节

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...