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. Configuration类的理解

    Configuration类主要用来读取配置文件,启动Hibernate,并负责Hibernate的配置信息.一个应用程序只创建一个Configuration. 在Hibernate启动过程中,Con ...

  2. MySQL 中的 SQL 语句详解

    @ 目录 总结内容 1. 基本概念 2. SQL列的常用类型 3. DDL简单操作 3.1 数据库操作 3.2 表操作 4. DML操作 4.1 修改操作(UPDATE SET) 4.2 插入操作(I ...

  3. css盒子模型、垂直外边距合并

    css盒子模型由四部分组成:内容(content).填充(padding).边框(border).边距(margin),其中css样式中定义的width属性是定义内容区域的宽度,正常情况下,设置了内容 ...

  4. 动态修改svg的颜色,svg做背景色时候修改颜色

    svg修改背景色可以使用fill属性来修改,但是我现在需要动态改变svg的颜色,例如我hover的时候 现在发现一种兼容性还不错的方法是css属性mask 类似于给路径填充上颜色,结合backgrou ...

  5. 一个程序的执行时间可以使用time+命令形式来获得

    编写程序testtime.c #include <stdio.h> //这个头一定要加 #include<time.h> main() { time_t timep; time ...

  6. 小天才XTC Z1S开启ADB

    起因 最近入手了Apple Watch,但因系统闭源和国区App Store第三方应用实在是少,所以就开始折腾起安卓表来了.正好家里有块给小孩子用的小天才手表,所以就想到了通过ADB调试安装一些这块表 ...

  7. FastDFS分布式的文件系统从小白入门到企业实践打怪之路系列笔记 【运维实践】

    描述: FastDFS 是阿里的余庆大佬用 C 语言编写的一款开源的分布式文件系统(个人项目),它对文件进行管理.功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,适合中小文件(4KB ...

  8. fs本地文件系统

    node 中有一个内置模块,fs全称flie system 文件系统,可以对本地文件执行增删改查操作(以下为异步相关API) 先引入内置模块   var fs=require('fs') 1,增: w ...

  9. 背包问题dp的初步总结

    背包问题 01背包 给定的物体只有0个和1个,只有选与不选的划分,其状态转移方程时由i-1行推出,所以第二层循环是由j=m,递减到v[i]的. for(int i=1;i<=n;i++){ fo ...

  10. 【已解决】vscode窗口控制台闪现(不用更改原代码)

    打开launch.json 将"type": "cppdbg"改为"type": "cppvsdbg" 会出现密钥ext ...