python基础学习8

内容概要


  • 字典的内置方法
  • 元组的内置方法
  • 集合的内置方法
  • 垃圾回收机制

内容详情


字典的内置方法

一、类型转换
res = dict(name='jason', pwd=123, hobby='read')
print(res)
res1 = dict([['name', 'jason'], ['age', 18], ['hobby', 'run']])
print(res1) 二、常见操作
1.按key取值
print(dict['key']) 键不存在直接报错
"""涉及到字典取值 更加推荐下面的方式"""
dict.get('xxx') 键存在,取v值 键不存在不会报错,而是返回None
dict.get('xxx', '第二个参数')) 键不存在 第二个参数不写默认返回None 写了则返回写了的
print(dict.get('name', '第二个参数')) 如果键存在 则不需要使用到第二个参数 2.修改值 字典也是可变类型 dict['key'] = 'value' 键存在是修改值 3.添加键值对 dict['key'] = 'value' 键不存在则是新增一个键值对 4.统计字典中键值对的个数 len(dict) 5.成员运算 也只能判断key而已 print('key' in dict) 6.删除键值对
del dict['key'] 通用的删除方式
print(dict.pop('key')) 弹出
dict.popitem('key') 随机弹出一个 7.获取所有的键 所有的值 所有的键值对
print(dict.keys()) # dict_keys([]) 可以看成是列表
print(dict.values()) # dict_values([]]) 可以看成是列表
print(dict.items()) # dict_items([]) 可以看成是列表套元组
for v in dict.values():
print(v)
"""在python2中上述三个方法就是直接返回一个列表 """ 三、补充
1.update更新字典
dict.update({'key1': 'xxx', 'key2': 'xxx'}) 键存在则修改 键不存在则新增
2.fromkeys()快速生成字典
dic = dict.fromkeys(['k1', 'k2', 'k3'], [])
print(dic) # {'k1': [], 'k2': [], 'k3': []}
dic['k1'].append(111) # 三个键指向的是同一个列表
print(dic) # {'k1': [111], 'k2': [111], 'k3': [111]}
3.setdefault()
dic = {'k1': 111, 'k2': 222}
print(dic.setdefault('k3', 333)) 键不存在则新增键值对 并且有返回结果是新增的v
print(dic.setdefault('k1', '嘿嘿嘿')) 键存在 则返回对应的值 不做修改

元组的内置方法

  可以看成是不可变的列表

1.类型转换
支持for循环的数据类型都可以转成元组 2.元组的特性
"""当元组内只有一个元素的时候 一定要在元素的后面加上逗号 否则变成单个元素本身的数据类型"""
"""一般情况下 我们会习惯性的将所有可以存储多个数据的类型的数据内部只有一个元素时会加逗号""" 3.常见操作
1.索引取值
2.切片操作
3.间隔
4.统计元组内元素的个数
5.成员运算
6.统计某个元素出现的次数
'''与列表基本一致'''
"""元组内元素不能'修改': 元组内各个索引值指向的内存地址不能修改"""

集合内置方法

1.类型转换
支持for循环的数据类型都可以转成集合
"""集合内元素只能是不可变类型"""
"""集合只会在去重和关系运算中使用 甚至有时候也不会用""" 2.两大功能
1.去重
集合内不能出现重复的元素(自带去重特性)
如果出现了 会被集合自动去重
s1 = {1,1,1,1,1,1,2,2,2,2,2,1,2,3,2,2,1,2,3,2,3,4,3,2,3}
print(s1) # {1, 2, 3, 4}
l = ['a', 'b', 1, 'a', 'a']
s1 = set(l)
l = list(s1)
print(l) # ['a', 'b', 1]
2.关系运算
判断两个群体内的差异
f1 = {'jason', 'kevin', 'tony', 'jerry'} # 小李的好友列表
f2 = {'jason', 'tom', 'jerry', 'jack'} # 小王的好友列表
1.求两个人的共同好友
print(f1 & f2) # {'jerry', 'jason'}
2.求小李的单独好友
print(f1 - f2) # {'kevin', 'tony'}
3.求两个人所有的好友
print(f1 | f2) # {'kevin', 'jack', 'tom', 'jason', 'jerry', 'tony'}
4.求两个人各自的好友
print(f1 ^ f2) # {'jack', 'tony', 'tom', 'kevin'}

垃圾回收机制

"""python底层针对空间的申请和释放都是设计好的 不需要程序员操心"""
1.引用计数
数据绑定的变量名的个数>>>引用计数
eg:name = 'jason'-->jason引用计数为1
a = name-->jason引用计数为2
python会将引用计数为0的数据清除
2.标记清除
当内存空间即将溢出(满了)的时候python会自动启动应急机制
停止程序的运行挨个检查值的引用计数并给计数为0的数据打上标记
然后一次性清理掉
3.分代回收
根据检测机制检查数据间隔的时间长短将其划分为三个等级 等级越高时间越长
等级1 检测机制每隔一级时间段来一次
等级2 检测机制每隔二级时间段来一次
等级3 检测机制每隔三级时间段来一次
检查机制每检查一个设定的次数 据未清除则放入下一等级 以此来减轻垃圾回收机制的负担
等级高的一般都是需要长期保存的数据

python基础学习8的更多相关文章

  1. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

  2. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  3. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

  4. Python 基础学习 总结篇

    Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...

  5. (一)python基础学习

    根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...

  6. python基础学习(起步)

    目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...

  7. Python基础学习二

    Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...

  8. Python基础学习一

    Python基础学习一 1.变量与常量 变量名:大小写英文.数字.下划线的组合,数字不能开头 常量名:习惯上常量用大写字母命名,例如"PI" 2.多行输出 转义符:反斜杠(),如果 ...

  9. Python基础学习五

    Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出 ...

  10. Python基础学习四

    Python基础学习四 1.内置函数 help()函数:用于查看内置函数的用途. help(abs) isinstance()函数:用于判断变量类型. isinstance(x,(int,float) ...

随机推荐

  1. 用 JS(JavaScript )实现多选、全选、反选

    JS小例题 学习内容: 需求 总结: 学习内容: 需求 用 JavaScript 实现全选.反选.多选 实现代码 <!DOCTYPE html PUBLIC "-//W3C//DTD ...

  2. Exchange 2013 中 NDR 常见的失败返回状态代码

    增强状态代码 描述 可能的原因 其他信息 4.3.1 Insufficient system resources 发生内存不足错误.资源问题(例如磁盘已满)可能导致该问题.您可能会收到内存不足错误,而 ...

  3. Python网络爬虫 - 爬取中证网银行相关信息

    最终版:07_中证网(Plus -Pro).py # coding=utf-8 import requests from bs4 import BeautifulSoup import io impo ...

  4. Java基础之浅谈异常与了解断言

    一.产生错误原因 用户输入错误 设备错误 物理限制 代码错误 二.解决错误---异常 在Java中异常对象都是派生于Throwable类的一个实例. 我们一般将异常分为两种:①Error和②Excep ...

  5. webpack打包学习

    从上图我们可以看出,webpack 可以将多种静态资源 js.css.sass文件等转换成一个静态文件,以此可以减少页面的请求,从而提高浏览器响应速度 1.安装开发依赖包 npm install we ...

  6. 阿里云-部署-服务-Docker

    目录 ♫ MusicPlayer Naiveboom - 比较安全 个人阿里云部署的小服务,欢迎使用,服务器资源有限,如果遇到卡顿还请谅解~ 索引: 在线音乐播放器 阅后即焚 ♫ MusicPlaye ...

  7. IsDebuggerPresent的反调试与反反调试

    一.调用系统的IsDebuggerPresent函数 (1)实现程序 最简单也是最基础的,Windows提供的API接口:IsDebuggerPresent(),这API实际上就是访问PEB的Bein ...

  8. Go xmas2020 学习笔记 06、Control Statements、Declarations & Types

    06-Control Statements. If-then-else. Loop. for. range array. range map. infinite loop. common mistak ...

  9. iperf/LANSpeedTest网络传输速度测试工具

    最近公司测试限速,搜集软件发现两款,iperf,LANSpeedTest. iperf,多平台. LANSpeedTest,读写显示,操作简单. 局域网测试传输,优先考虑UDP. iperf Iper ...

  10. 通过循环按行顺序为一个5×5的二维数组a赋1到25的自然数,然后输出该数组。试编程。