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) ...
随机推荐
- ssm项目框架搭建(增删改查案例实现)——(SpringMVC+Spring+mybatis项目整合)
Spring 常用注解 内容 一.基本概念 1. Spring 2. SpringMVC 3. MyBatis 二.开发环境搭建 1. 创建 maven 项目 2. SSM整合 2.1 项目结构图 2 ...
- FastAPI(七十四)实战开发《在线课程学习系统》接口开发-- 删除留言
之前文章FastAPI(七十三)实战开发<在线课程学习系统>接口开发-- 回复留言,那么我们这次分享删除留言接口的开发 可以对留言进行删除,这里的删除,我们使用的是逻辑的删除,不是物理删除 ...
- Python的组合数据类型
""" Python的组合类型: 序列类型:元素之间存在先后关系,可以通过索引来访问 列表: 元组: 字符串: 映射类型:用键值来表示数据 字典: 集合类型:元素是无序的 ...
- Elasticsearch8.1-ElasticsearchClient-Java客户端简单增删查改-随笔
环境准备 Springboot 基本环境 自行前往https://start.spring.io/ 构建一个即可 Elasticsearch服务端 简单说下windows版本的安装 https:// ...
- docker将jar打包镜像文件
1.首先需要编写dockerfile文件,通过dockerfile文件将jar包打成镜像 编写dockerfile文件 # 定义父镜像 FROM java:8 # 维护者信息 MAINTAINER c ...
- JavaScript学习基础1
##JavaScript: # 概念:一门运行在客户端的脚本语言 *运行在客户端浏览器中的.属于前端三件套之一,属于静态资源,每一个浏览器都有JavaScript的解析引擎 *脚本语言:不需要编译,直 ...
- 百度AI人脸检测——解析JSON 数据格式
1.了解一下 通常情况下,每个需要访问网络的应用程序都会有一个自己的服务器,我们可以向服务器提交数据,也可以从服务器上获取数据.不过这个时候就出现了一个问题,这些数据到底要以什么样的格式在网络上传输呢 ...
- 国产化之 .NET Core 操作达梦数据库DM8的两种方式
背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用达梦V8,CPU平台的范围包括x64.龙芯.飞腾.鲲鹏等.考虑到这些基础产品对.NET的支持,最终选择了.NET Core ...
- QGIS 3.14插件开发——Win10系统PyCharm开发环境搭建四步走
前言:最近实习要求做一个QGIS插件,网上关于QGIS 3.14插件开发环境搭建的文档不多,而且也不算太全面.正好实习的时候写了一个文档,在这里给大家分享一下. 因为是Word转的Markdown,可 ...
- JVM组成、GC回收机制、算法、JVM常见启动参数、JAVA出现OOM,如何解决、tomcat优化方法
JVM组成.GC回收机制.算法.JVM常见启动参数.JAVA出现OOM,如何解决.tomcat优化方法