python基础学习8
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的更多相关文章
- Day1 Python基础学习
一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- Day1 Python基础学习——概述、基本数据类型、流程控制
一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...
- Python 基础学习 总结篇
Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...
- (一)python基础学习
根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...
- python基础学习(起步)
目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...
- Python基础学习二
Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...
- Python基础学习一
Python基础学习一 1.变量与常量 变量名:大小写英文.数字.下划线的组合,数字不能开头 常量名:习惯上常量用大写字母命名,例如"PI" 2.多行输出 转义符:反斜杠(),如果 ...
- Python基础学习五
Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出 ...
- Python基础学习四
Python基础学习四 1.内置函数 help()函数:用于查看内置函数的用途. help(abs) isinstance()函数:用于判断变量类型. isinstance(x,(int,float) ...
随机推荐
- Blazor技术开发了一个访客管理系统
简单介绍一下系统功能 该系统为了在疫情期间能很好管理访客登记做好风险管控,同时可以整合智能设备做到自动确认并跟踪访客的行动轨迹,该项目完全开源. 系统流程 访客可以同通过手机进行预注册,同时上传照片, ...
- JavaWeb知识梳理(可收藏)
**JavaWeb相关知识 ** 1.Servlet 1.1 Status Code(Http状态码) 1.1xx 请求信息 Http状态码 Http Status Code Http状态码含义中文说 ...
- linux中rsync备份文件
linux中rsync备份文件 备份文件的方式 备份方式: cp : 本机复制 scp: 远程复制 推(本地上传到远程服务器): scp 1.txt root@ip:[路径] [root@m01 ~] ...
- Blazor Bootstrap 组件库语音组件介绍
Speech 语音识别与合成 通过麦克风语音采集转换为文字(STT),或者通过文字通过语音朗读出来(TTS) 本组件依赖于 BootstrapBlazor.AzureSpeech,使用本组件时需要引用 ...
- 2021.08.06 P2441 角色属性树(树形结构)
2021.08.06 P2441 角色属性树(树形结构) P2441 角色属性树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 求离x最近的祖先y且(x,y)>1. ...
- python基础练习题(九九乘法表)
又把python捡起来了,动手能力偏弱,决定每日一练,把基础打好! ------------------------------------------------------------------ ...
- 通过OptaPlanner优化 COVID-19 疫苗接种预约安排(2)
本文为OptaPlanner官方博客<Optimizing COVID-19 vaccination appointment scheduling>的第二篇译文.第一篇介绍了通过OptaP ...
- MySQL进阶之常用函数
我的小站 有时候,除了简单的数据查询,我们还有一些高级的函数. MySQL 包含了大量并且丰富的函数,这套 MySQL 函数大全只收集了几十个常用的,剩下的比较罕见的函数我们就不再整理了,读者可以到M ...
- Excel文件读写操作1(xls)
一.Python-Excel常用的库:xlrd(read).xlwt(write).xlutils.openpyxl 1.xlrd 读取Excel文件,支持 .xls 和 .xlsx 格式. 2.x ...
- 使用fastai训练的一个性别识别模型
在学习了python中的一些机器学习的相关模块后,再一次开始了深度学习之旅.不过与上次的TensorFlow框架不同,这一次接触的是fast.ai这样一个东西.这个框架还不稳定,网上也没有相关的中文文 ...