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. 微信支付之微信H5支付(坑,ajax不支持重定向跳转)

    这里讲的是  微信h5支付,    是微信以外的手机浏览器调用微信h5支付  h5支付: H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起 ...

  2. 动态div点击事件传递对象参数格式-草稿889

    <button type='button' style='border: 1px solid #eeeeee;color: #717070;height: 20px;border-radius: ...

  3. 基于nodejs中实现跨域的方法

    一般情况下跨域是通过ajax的方式请求数据,通过js在不同的域之间进行数据传输或者通信: 只有通过ajax方式获取请求的时候才会有跨域问题需要解决: 例如在本地模拟两个服务端. 一个服务端去通过aja ...

  4. linux磁盘分区fdisk命令操作(实践)

    写这篇的目的,还是要把整个过程完整的记录下来,特别是小细节的地方,通常很多情况是一知半解,平时不实践操作只凭看是没有用的,所以做这个行业就是要多动手,多学习,多思考慢慢你的思路也会打开.练就自己的学习 ...

  5. springboot jar包方式部署

    打好jar包后上传到 linux 执行命令 java -jar /root/vhr-web-0.0.1-SNAPSHOT.jar > /root/log.txt & 1.java -ja ...

  6. Selenium3自动化测试【27】Frame的操作

    本篇文章内容摘要 " 讲解Python3+Selenium3如何处理Frame窗体" 同步视频知识与系列知识内容,可关注:[公众号]:柒哥测试:[WX]:Lee-890;[视频号] ...

  7. css 实现输入效果

    <template>   <h1>Pure CSS Typing animation.</h1> </template> <script> ...

  8. Python 报错 ValueError list.remove(x) x not in list 解决办法

    平时开发 Python 代码过程中,经常会遇到这个报错: ValueError: list.remove(x): x not in list 错误提示信息也很明确,就是移除的元素不在列表之中. 比如: ...

  9. partTwo自动出题程序第一阶段

    课堂测试1:像二柱子那样,花二十分钟写一个能自动生成30道小学四则运算题目的 "软件" 代码实现 import java.util.Random;//import java.uti ...

  10. Apache Doris Oracle ODBC外表使用指南

    1.软件环境 操作系统:ubuntu 18.04 Apache Doris :0.15 Postgresql数据库:oracle 19c UnixODBC:2.3.4 Oracle ODBC :ins ...